aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbgaldrikian <[email protected]>2020-11-10 20:53:31 -0800
committerbgaldrikian <[email protected]>2020-11-10 20:53:31 -0800
commitd61c455a4775f966b44cc47804b9e0f160d3d332 (patch)
tree7eff987598048409fe4ec9a1f733a87356f3aa21
parent* Updated license file (diff)
downloadblast-1.1.7_rc1.tar.xz
blast-1.1.7_rc1.zip
Merge request #17 PhysX4 compatibilityv1.1.7_rc1
Other changes for linux and UE4CrossCompileLinux, and all packaging to work
-rwxr-xr-xCMakeLists.txt6
-rwxr-xr-xREADME.md2
-rwxr-xr-xblast_tools_and_samples-windows.zipbin71596796 -> 75318219 bytes
-rwxr-xr-xcompiler/cmake/linux/CMakeLists.txt2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_allocator_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_debug_render_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_asset_utils_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_8h_source.html2
-rw-r--r--docs/api_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html2
-rw-r--r--docs/api_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html2
-rw-r--r--docs/api_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_authoring_types_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html223
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html1
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_custom_profiler_8h_source.html20
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_damage_shaders_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_exporter_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_ll_serialization_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_actor_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_asset_8h_source.html2
-rw-r--r--docs/api_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_family_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_listener_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_manager_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_serialization_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_px_task_8h_source.html2
-rw-r--r--docs/api_docs/files/_nv_blast_ext_r_t_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_serialization_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_stress_solver_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_sync_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_ext_tk_serialization_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_globals_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_preprocessor_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_profiler_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_px_callbacks_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_actor_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_asset_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_event_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_family_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_framework_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_group_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_identifiable_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_joint_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_object_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_tk_type_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_blast_types_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/_nv_c_types_8h_source.html2
-rwxr-xr-xdocs/api_docs/files/pagereleasenotes.html9
-rwxr-xr-xdocs/release_notes.txt9
-rwxr-xr-xdocs/source_docs/files/_asset_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_d_t_o_macros_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_ext_px_asset_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_ext_px_chunk_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_ext_px_subchunk_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_actor_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_actor_serialization_block_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_allocator_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_array_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_assert_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_asset_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_atomic_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_bond_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_chunk_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_chunk_hierarchy_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_d_link_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_debug_render_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_apex_shared_parts_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_asset_utils_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_collision_builder_impl_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_cutout_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_mesh_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_mesh_noiser_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_perlin_noise_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_types_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_authoring_v_s_a_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_custom_profiler_8h-source.html223
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_custom_profiler_8h.html1
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_custom_profiler_8h_source.html20
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_damage_accelerator_internal_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_damage_shaders_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_fbx_reader_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_fbx_utils_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_fbx_writer_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_obj_reader_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_exporter_obj_writer_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_input_stream_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_k_j_px_input_stream_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_k_j_px_output_stream_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_ll_serialization_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_ll_serializer_c_a_p_n_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_output_stream_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_actor_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_actor_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_asset_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_asset_impl_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_px_collision_builder_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_family_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_family_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_listener_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_manager_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_manager_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_serialization_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_serializer_c_a_p_n_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_serializer_r_a_w_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_stress_solver_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_task_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_px_task_impl_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_r_t_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_r_t_impl_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_ext_r_t_multithreaded_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_serialization_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_serialization_c_a_p_n_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_serialization_internal_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_stress_solver_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_sync_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_tk_serialization_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_tk_serializer_c_a_p_n_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_tk_serializer_r_a_w_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_ext_triangle_processor_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_family_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_family_graph_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_fixed_array_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_fixed_bitmap_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_fixed_bool_array_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_fixed_priority_queue_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_fixed_queue_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_geometry_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_globals_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_hash_map_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_hash_set_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_i_d_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_include_windows_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_index_fns_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_iterator_base_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_math_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_memory_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_preprocessor_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_preprocessor_internal_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_profiler_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_profiler_internal_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_px_callbacks_8h_source.html2
-rw-r--r--docs/source_docs/files/_nv_blast_px_shared_helpers_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_support_graph_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_time_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_actor_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_actor_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_asset_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_asset_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_common_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_event_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_event_queue_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_family_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_family_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_framework_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_framework_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_g_u_i_d_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_group_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_group_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_identifiable_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_joint_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_joint_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_object_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_task_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_type_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_tk_type_impl_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_blast_types_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_c_types_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_nv_preprocessor_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_px_convex_mesh_geometry_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_px_mesh_scale_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_px_quat_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_px_transform_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_px_vec3_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_tk_asset_d_t_o_8h_source.html2
-rwxr-xr-xdocs/source_docs/files/_tk_asset_joint_desc_d_t_o_8h_source.html2
-rwxr-xr-xsamples/CMakeLists.txt6
-rwxr-xr-xsamples/SampleBase/blast/BlastController.cpp2
-rwxr-xr-xsamples/SampleBase/physx/PhysXController.cpp7
-rwxr-xr-xsamples/SampleBase/renderer/RenderMaterial.cpp1
-rwxr-xr-xsamples/SampleBase/renderer/Renderable.cpp1
-rwxr-xr-xsamples/SampleBase/renderer/Renderer.cpp2
-rwxr-xr-xsamples/SampleBase/renderer/SkinnedRenderMesh.cpp1
-rwxr-xr-xsamples/compiler/cmake/SampleAssetViewer.cmake12
-rwxr-xr-xsamples/compiler/cmake/SampleBase.cmake24
-rwxr-xr-xsamples/compiler/cmake/windows/SampleAssetViewer-AT.cmake2
-rwxr-xr-xsamples/compiler/cmake/windows/SampleBase-AT.cmake7
-rwxr-xr-xsdk/CMakeLists.txt6
-rwxr-xr-xsdk/compiler/cmake/NvBlast.cmake12
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtAssetUtils.cmake12
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtAuthoring.cmake16
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtExporter.cmake16
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtImport.cmake25
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtPhysX.cmake25
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtPxSerialization.cmake28
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtSerialization.cmake16
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtShaders.cmake13
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtStress.cmake16
-rwxr-xr-xsdk/compiler/cmake/NvBlastExtTkSerialization.cmake16
-rwxr-xr-xsdk/compiler/cmake/NvBlastGlobals.cmake12
-rwxr-xr-xsdk/compiler/cmake/NvBlastTk.cmake16
-rwxr-xr-xsdk/compiler/cmake/linux/CMakeLists.txt3
-rwxr-xr-xsdk/compiler/cmake/modules/FindPhysXSDK.cmake1005
-rwxr-xr-xsdk/compiler/cmake/modules/FindPxSharedSDK.cmake297
-rwxr-xr-xsdk/compiler/cmake/windows/CMakeLists.txt1
-rwxr-xr-xsdk/extensions/authoring/source/NvBlastExtAuthoringCutoutImpl.cpp1
-rwxr-xr-xsdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h1
-rwxr-xr-xsdk/extensions/import/source/NvBlastExtApexImportTool.cpp2
-rwxr-xr-xsdk/extensions/physx/include/NvBlastExtCustomProfiler.h1
-rw-r--r--shared/filebuf/include/PsAsciiConversion.h99
-rw-r--r--shared/filebuf/include/PsAsciiConversion.inl566
-rw-r--r--shared/filebuf/include/PsFileBuffer.h250
-rw-r--r--shared/filebuf/include/PsIOStream.h137
-rw-r--r--shared/filebuf/include/PsIOStream.inl415
-rw-r--r--shared/filebuf/include/PsMemoryBuffer.h449
-rwxr-xr-xtarget_platform_deps.xml13
-rwxr-xr-xtest/CMakeLists.txt6
-rwxr-xr-xtest/compiler/cmake/BlastPerfTests.cmake25
-rwxr-xr-xtest/compiler/cmake/BlastUnitTests.cmake34
-rwxr-xr-xtest/compiler/cmake/linux/CMakeLists.txt8
-rwxr-xr-xtest/compiler/cmake/windows/BlastPerfTests-AT.cmake5
-rwxr-xr-xtest/compiler/cmake/windows/BlastUnitTests-AT.cmake1
-rwxr-xr-xtest/src/TkBaseTest.h6
-rwxr-xr-xtest/src/unit/APITests.cpp16
-rwxr-xr-xtest/src/unit/TkTests.cpp1
-rwxr-xr-xtools/AuthoringTool/src/AuthoringTool.cpp2
-rwxr-xr-xtools/CMakeLists.txt6
-rwxr-xr-xtools/LegacyConverter/src/Main.cpp3
-rwxr-xr-xtools/compiler/cmake/ApexImporter.cmake19
-rwxr-xr-xtools/compiler/cmake/AuthoringTool.cmake19
-rwxr-xr-xtools/compiler/cmake/LegacyConverter.cmake19
268 files changed, 3372 insertions, 1250 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51b6ac7..aff4da2 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,9 +62,9 @@ ENDIF()
IF (APPEND_CONFIG_NAME)
MESSAGE("Appending config to output names")
- SET(CMAKE_DEBUG_POSTFIX "DEBUG")
- SET(CMAKE_PROFILE_POSTFIX "PROFILE")
- SET(CMAKE_CHECKED_POSTFIX "CHECKED")
+ SET(CMAKE_DEBUG_POSTFIX "")
+ SET(CMAKE_PROFILE_POSTFIX "")
+ SET(CMAKE_CHECKED_POSTFIX "")
SET(CMAKE_RELEASE_POSTFIX "")
ENDIF()
diff --git a/README.md b/README.md
index 7e0d843..0f69a24 100755
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Blast 1.1.6
+Blast 1.1.7
===========
![Alt text](/images/blast.png?raw=true "Blast Intro")
diff --git a/blast_tools_and_samples-windows.zip b/blast_tools_and_samples-windows.zip
index 8390783..1383e04 100755
--- a/blast_tools_and_samples-windows.zip
+++ b/blast_tools_and_samples-windows.zip
Binary files differ
diff --git a/compiler/cmake/linux/CMakeLists.txt b/compiler/cmake/linux/CMakeLists.txt
index 4cbbfde..27c592b 100755
--- a/compiler/cmake/linux/CMakeLists.txt
+++ b/compiler/cmake/linux/CMakeLists.txt
@@ -6,6 +6,8 @@ SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_CHECKED "-O2 -g")
SET(CMAKE_CXX_FLAGS_PROFILE "-O2 -g")
SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+SET(CMAKE_CXX_FLAGS "-std=c++14")
+SET(CMAKE_CXX_FLAGS "-Wno-uninitialized")
SET(BLASTALL_SLN_COMPILE_DEFS "")
diff --git a/docs/api_docs/files/_nv_blast_8h_source.html b/docs/api_docs/files/_nv_blast_8h_source.html
index 215bfe2..a8cc669 100755
--- a/docs/api_docs/files/_nv_blast_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_8h_source.html','');});
<div class="title">NvBlast.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLAST_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLAST_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// NvBlastAsset functions</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a6b27b9cc240bef3481cbfa23f7051060">NvBlastGetAssetMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a7517e528d4862b5e09853140bd4a2e46">NvBlastGetRequiredScratchForCreateAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#a8455859eec0e23e95aa5bbf7c4fd1e14">NvBlastCreateAsset</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#ab933a279e63545023464292bf7d562a1">NvBlastAssetGetFamilyMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#a868a59bb905879503d5e9a034cff247e">NvBlastAssetCreateFamily</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#a5c2c9cd099db429304e8aacffad62247">NvBlastAssetGetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ac0c345ce6676ad87cbd06e2f0debd8f7">NvBlastAssetSetID</a>(<a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#afa3dbe442bf799bbee07eb98774340d4">NvBlastAssetGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ad7ee1d97ad6e4f048eab694249fa2594">NvBlastAssetGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ac82609eb93afc9a8ab7011f2eb8f9a23">NvBlastAssetGetChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a3b2193da26679967e526001578327d41">NvBlastAssetGetSupportChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#acc0eed6bfaa3b56d472c41388c269625">NvBlastAssetGetLeafChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ae8bee2fd37d6af164165a23adb0592a9">NvBlastAssetGetFirstSubsupportChunkIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ab44bf9e7f8a755094ee4f45aade1c0ab">NvBlastAssetGetBondCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> <a class="code" href="_nv_blast_8h.html#ac2307bd41ba85f2d69df0f229105fd09">NvBlastAssetGetSupportGraph</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> uint32_t* <a class="code" href="_nv_blast_8h.html#abff733fd05dc5b7a730336699a427c25">NvBlastAssetGetChunkToGraphNodeMap</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="_nv_blast_8h.html#aac1c384c82de07c613b7c0539f7707df">NvBlastAssetGetChunks</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="_nv_blast_8h.html#ad612242052e71894fecfca76f5cf39d3">NvBlastAssetGetBonds</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a2539b7a2f244a8f0c45d7020d1dfad63">NvBlastAssetGetActorSerializationSizeUpperBound</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// NvBlastAsset helper functions</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#afd09f53fb71a1fb33053eebf1610367b">NvBlastEnsureAssetExactSupportCoverage</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ac4748f2da0b6a1be9055141c68ac668f">NvBlastBuildAssetDescChunkReorderMap</a>(uint32_t* chunkReorderMap, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a3204e6077b424c4e10f605af0fa119d5">NvBlastApplyAssetDescChunkReorderMap</a></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;(</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* reorderedChunkDescs,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a9eea9e02fc7f81cdc0399e7196bddf58">NvBlastApplyAssetDescChunkReorderMapInPlace</a></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;(</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a773ddce30d6fdeebf0a770dcc5fc1305">NvBlastReorderAssetDescChunks</a></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;(</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// NvBlastFamily functions</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a15f297534c834b7335747be318303aa7">NvBlastFamilyGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#adca8ba4a5449c530cfdb9a39e50215dd">NvBlastFamilyGetAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#afa4b1c5e96650587b8daabb5ab86d2f1">NvBlastFamilySetAsset</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af2316e686029f931812a3ddf11de6547">NvBlastFamilyGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#afa406b4fc35520001060b529ec95e820">NvBlastFamilyGetAssetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a730a6ea95065b53b9d9b65bde8cbb336">NvBlastFamilyGetRequiredScratchForCreateFirstActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a6d774be820fc1ff7df4d2241df1db220">NvBlastFamilyCreateFirstActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a88fd777ba36d4ad6c6d7a7913810c24d">NvBlastFamilyGetActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a38e8e96d5b62bf19dc3135603ed38240">NvBlastFamilyDeserializeActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aeb9144660cd1dbdb4dc23720a3e542de">NvBlastFamilyGetActors</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actors, uint32_t actorsSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a5c7e938874e2f930ea5b55fedb27b12e">NvBlastFamilyGetChunkActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, uint32_t chunkIndex, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ac9e06ffe539277ccbdb648c97308fa65">NvBlastFamilyGetMaxActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment">// NvBlastActor accessor, serialization, and deactivation functions</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ae3fbeb19c609c388c92ee173cc04b334">NvBlastActorGetVisibleChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aac805c5bcc48f209925d938acbc2f17e">NvBlastActorGetVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a3a97a2b9a11e4eb47fa05b3e6f520fce">NvBlastActorGetGraphNodeCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#abdf46f09850fb6952509a94f14d9406b">NvBlastActorGetGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="_nv_blast_8h.html#a89921a073e03d720fd0c7c3823cd9b7c">NvBlastActorGetBondHealths</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a8a9c103d9113d83a21a004bbbcad7beb">NvBlastActorGetSerializationSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#acab7d192ec7ac6d3a095a6b0646375fe">NvBlastActorSerialize</a>(<span class="keywordtype">void</span>* buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#a2d59048197fbddd4ba1ec575eef91b4d">NvBlastActorGetFamily</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ad9607ac7bd28e0a3a2b3bec7aa8d5805">NvBlastActorGetIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ad7b368ffbf45a130d7b116530b81a77e">NvBlastActorDeactivate</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">// NvBlastActor damage and fracturing functions</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a7bf6cbcc95e377f61dbd1ab87bf6facc">NvBlastActorGenerateFracture</a></div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;(</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers,</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> program, </div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams,</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, </div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a6a3d0ae6f5c5efb65699140897adb8c0">NvBlastActorApplyFracture</a></div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;(</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers,</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#adc280b2a624d76981c87fb5f068d5106">NvBlastActorSplit</a></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;(</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a>* result, </div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; uint32_t newActorsMaxCount,</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a8ecf1456b8fb626a4384fb82265a802d">NvBlastActorGetRequiredScratchForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a0142a22e103d7726b58d976925504f9c">NvBlastActorGetMaxActorCountForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a5261035f206eb5fb1a1822323ff8d725">NvBlastActorCanFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a9199afeefb94662e609d85a79be31a31">NvBlastActorIsSplitRequired</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#afd4fbf5c7be23baba91f5c5b1a8b91f3">NvBlastActorIsBoundToWorld</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment">// NvBlastTimers functions and helpers</span></div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#ab3059b35f2c62b8110d90336f5cecefc">NvBlastTimersReset</a>(<a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">double</span> <a class="code" href="_nv_blast_8h.html#a749f932dc54fa2d3f413bd6fcc1ba6e9">NvBlastTicksToSeconds</a>(int64_t ticks);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="preprocessor">#endif // ifndef NVBLAST_H</span></div><div class="ttc" id="_nv_blast_8h_html_afa3dbe442bf799bbee07eb98774340d4"><div class="ttname"><a href="_nv_blast_8h.html#afa3dbe442bf799bbee07eb98774340d4">NvBlastAssetGetFormatVersion</a></div><div class="ttdeci">uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset *asset, NvBlastLog logFn)</div></div>
+<a href="_nv_blast_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLAST_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLAST_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// NvBlastAsset functions</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a6b27b9cc240bef3481cbfa23f7051060">NvBlastGetAssetMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a7517e528d4862b5e09853140bd4a2e46">NvBlastGetRequiredScratchForCreateAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#a8455859eec0e23e95aa5bbf7c4fd1e14">NvBlastCreateAsset</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#ab933a279e63545023464292bf7d562a1">NvBlastAssetGetFamilyMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#a868a59bb905879503d5e9a034cff247e">NvBlastAssetCreateFamily</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#a5c2c9cd099db429304e8aacffad62247">NvBlastAssetGetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ac0c345ce6676ad87cbd06e2f0debd8f7">NvBlastAssetSetID</a>(<a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#afa3dbe442bf799bbee07eb98774340d4">NvBlastAssetGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ad7ee1d97ad6e4f048eab694249fa2594">NvBlastAssetGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ac82609eb93afc9a8ab7011f2eb8f9a23">NvBlastAssetGetChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a3b2193da26679967e526001578327d41">NvBlastAssetGetSupportChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#acc0eed6bfaa3b56d472c41388c269625">NvBlastAssetGetLeafChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ae8bee2fd37d6af164165a23adb0592a9">NvBlastAssetGetFirstSubsupportChunkIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ab44bf9e7f8a755094ee4f45aade1c0ab">NvBlastAssetGetBondCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> <a class="code" href="_nv_blast_8h.html#ac2307bd41ba85f2d69df0f229105fd09">NvBlastAssetGetSupportGraph</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> uint32_t* <a class="code" href="_nv_blast_8h.html#abff733fd05dc5b7a730336699a427c25">NvBlastAssetGetChunkToGraphNodeMap</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="_nv_blast_8h.html#aac1c384c82de07c613b7c0539f7707df">NvBlastAssetGetChunks</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="_nv_blast_8h.html#ad612242052e71894fecfca76f5cf39d3">NvBlastAssetGetBonds</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a2539b7a2f244a8f0c45d7020d1dfad63">NvBlastAssetGetActorSerializationSizeUpperBound</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// NvBlastAsset helper functions</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#afd09f53fb71a1fb33053eebf1610367b">NvBlastEnsureAssetExactSupportCoverage</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ac4748f2da0b6a1be9055141c68ac668f">NvBlastBuildAssetDescChunkReorderMap</a>(uint32_t* chunkReorderMap, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a3204e6077b424c4e10f605af0fa119d5">NvBlastApplyAssetDescChunkReorderMap</a></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;(</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* reorderedChunkDescs,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a9eea9e02fc7f81cdc0399e7196bddf58">NvBlastApplyAssetDescChunkReorderMapInPlace</a></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;(</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a773ddce30d6fdeebf0a770dcc5fc1305">NvBlastReorderAssetDescChunks</a></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;(</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// NvBlastFamily functions</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a15f297534c834b7335747be318303aa7">NvBlastFamilyGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#adca8ba4a5449c530cfdb9a39e50215dd">NvBlastFamilyGetAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#afa4b1c5e96650587b8daabb5ab86d2f1">NvBlastFamilySetAsset</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af2316e686029f931812a3ddf11de6547">NvBlastFamilyGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#afa406b4fc35520001060b529ec95e820">NvBlastFamilyGetAssetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a730a6ea95065b53b9d9b65bde8cbb336">NvBlastFamilyGetRequiredScratchForCreateFirstActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a6d774be820fc1ff7df4d2241df1db220">NvBlastFamilyCreateFirstActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a88fd777ba36d4ad6c6d7a7913810c24d">NvBlastFamilyGetActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a38e8e96d5b62bf19dc3135603ed38240">NvBlastFamilyDeserializeActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aeb9144660cd1dbdb4dc23720a3e542de">NvBlastFamilyGetActors</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actors, uint32_t actorsSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a5c7e938874e2f930ea5b55fedb27b12e">NvBlastFamilyGetChunkActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, uint32_t chunkIndex, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ac9e06ffe539277ccbdb648c97308fa65">NvBlastFamilyGetMaxActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment">// NvBlastActor accessor, serialization, and deactivation functions</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ae3fbeb19c609c388c92ee173cc04b334">NvBlastActorGetVisibleChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aac805c5bcc48f209925d938acbc2f17e">NvBlastActorGetVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a3a97a2b9a11e4eb47fa05b3e6f520fce">NvBlastActorGetGraphNodeCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#abdf46f09850fb6952509a94f14d9406b">NvBlastActorGetGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="_nv_blast_8h.html#a89921a073e03d720fd0c7c3823cd9b7c">NvBlastActorGetBondHealths</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a8a9c103d9113d83a21a004bbbcad7beb">NvBlastActorGetSerializationSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#acab7d192ec7ac6d3a095a6b0646375fe">NvBlastActorSerialize</a>(<span class="keywordtype">void</span>* buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#a2d59048197fbddd4ba1ec575eef91b4d">NvBlastActorGetFamily</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ad9607ac7bd28e0a3a2b3bec7aa8d5805">NvBlastActorGetIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ad7b368ffbf45a130d7b116530b81a77e">NvBlastActorDeactivate</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">// NvBlastActor damage and fracturing functions</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a7bf6cbcc95e377f61dbd1ab87bf6facc">NvBlastActorGenerateFracture</a></div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;(</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers,</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> program, </div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams,</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, </div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a6a3d0ae6f5c5efb65699140897adb8c0">NvBlastActorApplyFracture</a></div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;(</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers,</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#adc280b2a624d76981c87fb5f068d5106">NvBlastActorSplit</a></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;(</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a>* result, </div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; uint32_t newActorsMaxCount,</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a8ecf1456b8fb626a4384fb82265a802d">NvBlastActorGetRequiredScratchForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a0142a22e103d7726b58d976925504f9c">NvBlastActorGetMaxActorCountForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a5261035f206eb5fb1a1822323ff8d725">NvBlastActorCanFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a9199afeefb94662e609d85a79be31a31">NvBlastActorIsSplitRequired</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#afd4fbf5c7be23baba91f5c5b1a8b91f3">NvBlastActorIsBoundToWorld</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment">// NvBlastTimers functions and helpers</span></div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#ab3059b35f2c62b8110d90336f5cecefc">NvBlastTimersReset</a>(<a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">double</span> <a class="code" href="_nv_blast_8h.html#a749f932dc54fa2d3f413bd6fcc1ba6e9">NvBlastTicksToSeconds</a>(int64_t ticks);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="preprocessor">#endif // ifndef NVBLAST_H</span></div><div class="ttc" id="_nv_blast_8h_html_afa3dbe442bf799bbee07eb98774340d4"><div class="ttname"><a href="_nv_blast_8h.html#afa3dbe442bf799bbee07eb98774340d4">NvBlastAssetGetFormatVersion</a></div><div class="ttdeci">uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset *asset, NvBlastLog logFn)</div></div>
<div class="ttc" id="_nv_blast_8h_html_a868a59bb905879503d5e9a034cff247e"><div class="ttname"><a href="_nv_blast_8h.html#a868a59bb905879503d5e9a034cff247e">NvBlastAssetCreateFamily</a></div><div class="ttdeci">NvBlastFamily * NvBlastAssetCreateFamily(void *mem, const NvBlastAsset *asset, NvBlastLog logFn)</div></div>
<div class="ttc" id="_nv_blast_8h_html_ad7b368ffbf45a130d7b116530b81a77e"><div class="ttname"><a href="_nv_blast_8h.html#ad7b368ffbf45a130d7b116530b81a77e">NvBlastActorDeactivate</a></div><div class="ttdeci">bool NvBlastActorDeactivate(NvBlastActor *actor, NvBlastLog logFn)</div></div>
<div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
diff --git a/docs/api_docs/files/_nv_blast_allocator_8h_source.html b/docs/api_docs/files/_nv_blast_allocator_8h_source.html
index 6e770b9..f4da8f7 100755
--- a/docs/api_docs/files/_nv_blast_allocator_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_allocator_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_allocator_8h_source.html',''
<div class="title">NvBlastAllocator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_allocator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator.html">Allocator</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea"> 49</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea">Allocator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* = 0)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd"> 53</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, <span class="keyword">nullptr</span>, filename, line);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202"> 58</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202">deallocate</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTALLOCATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
+<a href="_nv_blast_allocator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator.html">Allocator</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea"> 49</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea">Allocator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* = 0)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd"> 53</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, <span class="keyword">nullptr</span>, filename, line);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202"> 58</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202">deallocate</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTALLOCATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_ae0303f5b6c3993251bdf790f43ef4e90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">Nv::Blast::AllocatorCallback::allocate</a></div><div class="ttdeci">virtual void * allocate(size_t size, const char *typeName, const char *filename, int line)=0</div><div class="ttdoc">Allocates size bytes of memory, which must be 16-byte aligned. </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_html_a27443f120df80394ff9800159b366eea"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea">Nv::Blast::Allocator::Allocator</a></div><div class="ttdeci">Allocator(const char *=0)</div><div class="ttdef"><b>Definition:</b> NvBlastAllocator.h:49</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_debug_render_8h_source.html b/docs/api_docs/files/_nv_blast_debug_render_8h_source.html
index 322acb5..32cd0cd 100755
--- a/docs/api_docs/files/_nv_blast_debug_render_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_debug_render_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_debug_render_8h_source.html'
<div class="title">NvBlastDebugRender.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_debug_render_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html"> 41</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634"> 43</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, uint32_t c)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; : <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>(p0), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>(c), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>(p1), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>(c) {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c"> 46</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9"> 47</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb"> 48</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55"> 49</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb"> 58</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb">lines</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a"> 59</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a">lineCount</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_debug_line_html_aae5d9d324ac30cec64094d9d298ce634"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">Nv::Blast::DebugLine::DebugLine</a></div><div class="ttdeci">DebugLine(const NvcVec3 &amp;p0, const NvcVec3 &amp;p1, uint32_t c)</div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:43</div></div>
+<a href="_nv_blast_debug_render_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html"> 41</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634"> 43</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, uint32_t c)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; : <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>(p0), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>(c), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>(p1), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>(c) {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c"> 46</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9"> 47</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb"> 48</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55"> 49</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb"> 58</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb">lines</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a"> 59</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a">lineCount</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_debug_line_html_aae5d9d324ac30cec64094d9d298ce634"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">Nv::Blast::DebugLine::DebugLine</a></div><div class="ttdeci">DebugLine(const NvcVec3 &amp;p0, const NvcVec3 &amp;p1, uint32_t c)</div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:43</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_debug_buffer_html_af6f3565fb58a4218b8f50982557b1a9a"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a">Nv::Blast::DebugBuffer::lineCount</a></div><div class="ttdeci">uint32_t lineCount</div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:59</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_debug_buffer_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a></div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:56</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_debug_line_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_line.html">Nv::Blast::DebugLine</a></div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:41</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html b/docs/api_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html
index c8b9027..d008836 100755
--- a/docs/api_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_apex_import_tool_8h_sour
<div class="title">NvBlastExtApexImportTool.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_apex_import_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_collision_builder_8h.html">NvBlastExtPxCollisionBuilder.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;nvparameterized\NvSerializer.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacephysx.html"> 40</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>PxFoundation;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacephysx_1_1general___px_i_o_stream2.html"> 46</a></span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_parameterized.html"> 52</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv_parameterized.html">NvParameterized</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">class </span>Interface;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacenvidia.html"> 57</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacenvidia.html">nvidia</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacenvidia_1_1apex.html"> 59</a></span>&#160;<span class="keyword">namespace </span>apex</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ApexSDK;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ModuleDestructible;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>DestructibleAsset;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx_1_1general___px_i_o_stream2.html">physx::general_PxIOStream2</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_apex_importer.html"> 77</a></span>&#160;<span class="keyword">namespace </span>ApexImporter</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html"> 80</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59a2551cc1be833bbdfb49cb4b5c8d771bf"> 91</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> { EXACT, FORCED, MODE_COUNT };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e"> 93</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e">ApexImporterConfig</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; setDefaults();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153"> 98</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153">setDefaults</a>()</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; infSearchMode = EXACT;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560"> 102</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560">infSearchMode</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">class </span>ApexDestruction;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html"> 112</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> loadAssetFromFile(nvidia::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData&amp; data);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; config);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> importRendermesh(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, <span class="keyword">const</span> NvParameterized::Interface* assetNvIfc, <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">Nv::Blast::ExporterMeshData</a>* outputData, <span class="keyword">const</span> <span class="keywordtype">char</span>* materialsDir);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">bool</span> saveAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, nvidia::PxFileBuf* stream);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> getCollisionGeometry(<span class="keyword">const</span> NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; apexChunkFlags, std::vector&lt;ExtPxAssetDesc::ChunkDesc&gt;&amp; physicsChunks,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::vector&lt;ExtPxAssetDesc::SubchunkDesc&gt;&amp; physicsSubchunks, std::vector&lt;std::vector&lt;CollisionHull*&gt; &gt;&amp; hullsDesc);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53"> 183</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53">getCollisionBuilder</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> m_collisionBuilder;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">bool</span> isValid();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d"> 192</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d">getPxSdk</a>() { <span class="keywordflow">return</span> m_PhysxSDK; }</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8"> 193</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8">getCooking</a>() { <span class="keywordflow">return</span> m_Cooking; };</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">bool</span> importApexAssetInternal(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDesc, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; configDesc);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af"> 204</a></span>&#160; physx::PxFoundation* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af">m_Foundation</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177"> 205</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177">m_PhysxSDK</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd"> 206</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd">m_Cooking</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f"> 208</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f">m_collisionBuilder</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;};</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace ApexImporter</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_apex_import_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_collision_builder_8h.html">NvBlastExtPxCollisionBuilder.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;nvparameterized\NvSerializer.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacephysx.html"> 40</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>PxFoundation;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacephysx_1_1general___px_i_o_stream2.html"> 46</a></span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_parameterized.html"> 52</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv_parameterized.html">NvParameterized</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">class </span>Interface;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacenvidia.html"> 57</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacenvidia.html">nvidia</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacenvidia_1_1apex.html"> 59</a></span>&#160;<span class="keyword">namespace </span>apex</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ApexSDK;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ModuleDestructible;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>DestructibleAsset;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx_1_1general___px_i_o_stream2.html">physx::general_PxIOStream2</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_apex_importer.html"> 77</a></span>&#160;<span class="keyword">namespace </span>ApexImporter</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html"> 80</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59a2551cc1be833bbdfb49cb4b5c8d771bf"> 91</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> { EXACT, FORCED, MODE_COUNT };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e"> 93</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e">ApexImporterConfig</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; setDefaults();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153"> 98</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153">setDefaults</a>()</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; infSearchMode = EXACT;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560"> 102</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560">infSearchMode</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">class </span>ApexDestruction;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html"> 112</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> loadAssetFromFile(nvidia::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData&amp; data);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; config);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> importRendermesh(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, <span class="keyword">const</span> NvParameterized::Interface* assetNvIfc, <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">Nv::Blast::ExporterMeshData</a>* outputData, <span class="keyword">const</span> <span class="keywordtype">char</span>* materialsDir);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">bool</span> saveAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, nvidia::PxFileBuf* stream);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> getCollisionGeometry(<span class="keyword">const</span> NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; apexChunkFlags, std::vector&lt;ExtPxAssetDesc::ChunkDesc&gt;&amp; physicsChunks,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::vector&lt;ExtPxAssetDesc::SubchunkDesc&gt;&amp; physicsSubchunks, std::vector&lt;std::vector&lt;CollisionHull*&gt; &gt;&amp; hullsDesc);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53"> 183</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53">getCollisionBuilder</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> m_collisionBuilder;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">bool</span> isValid();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d"> 192</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d">getPxSdk</a>() { <span class="keywordflow">return</span> m_PhysxSDK; }</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8"> 193</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8">getCooking</a>() { <span class="keywordflow">return</span> m_Cooking; };</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">bool</span> importApexAssetInternal(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDesc, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; configDesc);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af"> 204</a></span>&#160; physx::PxFoundation* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af">m_Foundation</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177"> 205</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177">m_PhysxSDK</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd"> 206</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd">m_Cooking</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f"> 208</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f">m_collisionBuilder</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;};</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace ApexImporter</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config_html_a92d34d1b3881431877e1f46dd6aa4c6e"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e">Nv::Blast::ApexImporter::ApexImporterConfig::ApexImporterConfig</a></div><div class="ttdeci">ApexImporterConfig()</div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:93</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config_html_a644c53bd1c5a0889819f2d8a77fe2560"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560">Nv::Blast::ApexImporter::ApexImporterConfig::infSearchMode</a></div><div class="ttdeci">InterfaceSearchMode infSearchMode</div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:102</div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_asset_utils_8h_source.html b/docs/api_docs/files/_nv_blast_ext_asset_utils_8h_source.html
index 045c381..668aa7f 100755
--- a/docs/api_docs/files/_nv_blast_ext_asset_utils_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_asset_utils_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_asset_utils_8h_source.ht
<div class="title">NvBlastExtAssetUtils.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_asset_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_ext_asset_utils_8h.html#adf802362e469fcaa8a40cb9f787b9e60">NvBlastExtAssetUtilsAddWorldBonds</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;(</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">const</span> uint32_t* worldBoundChunks,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t worldBoundChunkCount,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* bondDirections,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">const</span> uint32_t* bondUserData</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">componentIndices</a>[2]; </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#a51725c40995e0c86428bdc9fb5450f48">NvBlastExtAssetUtilsMergeAssets</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;(</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t componentCount,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>* newBondDescs,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint32_t newBondCount,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t* chunkIndexOffsets,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint32_t chunkReorderMapSize</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#ac37d2686e8dc06a250d84e5d58ae5f6e">NvBlastExtAssetTransformInPlace</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;(</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scale,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="ttc" id="struct_nv_blast_ext_asset_utils_bond_desc_html_aef6248c9f3faf783b45b735d919eb8c4"><div class="ttname"><a href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">NvBlastExtAssetUtilsBondDesc::componentIndices</a></div><div class="ttdeci">uint32_t componentIndices[2]</div><div class="ttdoc">The asset component for the corresponding chunkIndices[2] value. </div><div class="ttdef"><b>Definition:</b> NvBlastExtAssetUtils.h:68</div></div>
+<a href="_nv_blast_ext_asset_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_ext_asset_utils_8h.html#adf802362e469fcaa8a40cb9f787b9e60">NvBlastExtAssetUtilsAddWorldBonds</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;(</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">const</span> uint32_t* worldBoundChunks,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t worldBoundChunkCount,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* bondDirections,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">const</span> uint32_t* bondUserData</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">componentIndices</a>[2]; </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#a51725c40995e0c86428bdc9fb5450f48">NvBlastExtAssetUtilsMergeAssets</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;(</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t componentCount,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>* newBondDescs,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint32_t newBondCount,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t* chunkIndexOffsets,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint32_t chunkReorderMapSize</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#ac37d2686e8dc06a250d84e5d58ae5f6e">NvBlastExtAssetTransformInPlace</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;(</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scale,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="ttc" id="struct_nv_blast_ext_asset_utils_bond_desc_html_aef6248c9f3faf783b45b735d919eb8c4"><div class="ttname"><a href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">NvBlastExtAssetUtilsBondDesc::componentIndices</a></div><div class="ttdeci">uint32_t componentIndices[2]</div><div class="ttdoc">The asset component for the corresponding chunkIndices[2] value. </div><div class="ttdef"><b>Definition:</b> NvBlastExtAssetUtils.h:68</div></div>
<div class="ttc" id="_nv_blast_ext_asset_utils_8h_html_ac37d2686e8dc06a250d84e5d58ae5f6e"><div class="ttname"><a href="_nv_blast_ext_asset_utils_8h.html#ac37d2686e8dc06a250d84e5d58ae5f6e">NvBlastExtAssetTransformInPlace</a></div><div class="ttdeci">void NvBlastExtAssetTransformInPlace(NvBlastAsset *asset, const NvcVec3 *scale, const NvcQuat *rotation, const NvcVec3 *translation)</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="struct_nv_blast_asset_desc_html"><div class="ttname"><a href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:345</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_8h_source.html
index ff4dbbb..528c274 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_8h_source.html
<div class="title">NvBlastExtAuthoring.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespace_nv.html"> 34</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html"> 36</a></span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#af169fb5abb2f0475f7ef221129fcc278">NvBlastExtAuthoringCreateMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* positions, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* normals, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* uv,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uint32_t verticesCount, <span class="keyword">const</span> uint32_t* indices, uint32_t indicesCount);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a5faad1bdb348d4979b2bf17b33f9b12f">NvBlastExtAuthoringCreateMeshOnlyTriangles</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, uint32_t verticesCount, uint32_t* indices,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint32_t indexCount, <span class="keywordtype">void</span>* materials = <span class="keyword">nullptr</span>, uint32_t materialStride = 4);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a0d65b4208e0e406c8c61330610845c18">NvBlastExtAuthoringCreateMeshFromFacets</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, <span class="keyword">const</span> <span class="keywordtype">void</span>* edges, <span class="keyword">const</span> <span class="keywordtype">void</span>* facets,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a>*</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#acd91ba6bf9cb55758bd477fe114e318b">NvBlastExtAuthoringCreateVoronoiSitesGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* rng);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a96fac66d91c7052499f8ad246114d187">NvBlastExtAuthoringCreateCutoutSet</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#af5f4d1eb694a93557d1f39f8564ef435">NvBlastExtAuthoringBuildCutoutSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>&amp; cutoutSet, <span class="keyword">const</span> uint8_t* pixelBuffer, uint32_t bufferWidth,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint32_t bufferHeight, <span class="keywordtype">float</span> segmentationErrorThreshold, <span class="keywordtype">float</span> snapThreshold,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> periodic, <span class="keywordtype">bool</span> expandGaps);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a41aee44d57db3e410d5d9dd5b07632d5">NvBlastExtAuthoringCreateFractureTool</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a8bf20d770ff841495410c94728ee6f7b">NvBlastExtAuthoringCreateBondGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* builder);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> int32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#a15fa5f130ca888ab5d84073112e0ce58">NvBlastExtAuthoringBuildMeshConvexDecomposition</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Nv::Blast::Triangle</a>* mesh,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint32_t triangleCount,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; params,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; convexes);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a364e68eac57e8a26eaf895452c266596">NvBlastExtAuthoringTrimCollisionGeometry</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb, uint32_t chunksCount,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>** in, <span class="keyword">const</span> uint32_t* chunkDepth);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a3684fc5c5d206c429dfc78fe7d1c86b3">NvBlastExtAuthoringTransformCollisionHullInPlace</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#ab5f1213bba94999b576885bc208d30c9">NvBlastExtAuthoringTransformCollisionHull</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>*</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#aa055a16eea150c155525c41f32c82b1c">NvBlastExtAuthoringProcessFracture</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>&amp; bondGenerator,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t defaultSupportDepth = -1);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#af06631688da85de482df0bdc3400959b">NvBlastExtAuthoringReleaseAuthoringResultCollision</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aaaa94617ab23d62f688504cd0e960b10">NvBlastExtAuthoringReleaseAuthoringResult</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a231c56bb096167d21bbbc49cc46c0592">NvBlastExtAuthoringUpdateGraphicsMesh</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aa267355276c6c7f75e11b1d1b401e9aa">NvBlastExtAuthoringBuildCollisionMeshes</a>(<a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; uint32_t chunksToProcessCount, uint32_t* chunksToProcess);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#aa763b10260b7d2a495fb106601977422">NvBlastExtAuthoringCreateMeshCleaner</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#afee92cc71878d2b254360ef3ee223337">NvBlastExtAuthoringFindAssetConnectingBonds</a>(</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> uint32_t** convexHullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*** chunkHulls, uint32_t componentCount,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>*&amp; newBondDescs, <span class="keywordtype">float</span> maxSeparation = 0.0f);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">Nv::Blast::PatternGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a53c22dbb75e939a04e48aa0e9dfe2158">NvBlastExtAuthoringCreatePatternGenerator</a>();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a080affb840f2061b502bfb5db90efc8d">NvBlastExtAuthoringCreateGridAccelerator</a>(uint32_t resolution, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">Nv::Blast::GridWalker</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a179362f88f5da692b27ec497ad7d6ff4">NvBlastExtAuthoringCreateGridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* parent);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORING_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_8h_html_a0d65b4208e0e406c8c61330610845c18"><div class="ttname"><a href="_nv_blast_ext_authoring_8h.html#a0d65b4208e0e406c8c61330610845c18">NvBlastExtAuthoringCreateMeshFromFacets</a></div><div class="ttdeci">Nv::Blast::Mesh * NvBlastExtAuthoringCreateMeshFromFacets(const void *vertices, const void *edges, const void *facets, uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount)</div></div>
+<a href="_nv_blast_ext_authoring_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespace_nv.html"> 34</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html"> 36</a></span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#af169fb5abb2f0475f7ef221129fcc278">NvBlastExtAuthoringCreateMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* positions, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* normals, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* uv,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uint32_t verticesCount, <span class="keyword">const</span> uint32_t* indices, uint32_t indicesCount);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a5faad1bdb348d4979b2bf17b33f9b12f">NvBlastExtAuthoringCreateMeshOnlyTriangles</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, uint32_t verticesCount, uint32_t* indices,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint32_t indexCount, <span class="keywordtype">void</span>* materials = <span class="keyword">nullptr</span>, uint32_t materialStride = 4);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a0d65b4208e0e406c8c61330610845c18">NvBlastExtAuthoringCreateMeshFromFacets</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, <span class="keyword">const</span> <span class="keywordtype">void</span>* edges, <span class="keyword">const</span> <span class="keywordtype">void</span>* facets,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a>*</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#acd91ba6bf9cb55758bd477fe114e318b">NvBlastExtAuthoringCreateVoronoiSitesGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* rng);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a96fac66d91c7052499f8ad246114d187">NvBlastExtAuthoringCreateCutoutSet</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#af5f4d1eb694a93557d1f39f8564ef435">NvBlastExtAuthoringBuildCutoutSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>&amp; cutoutSet, <span class="keyword">const</span> uint8_t* pixelBuffer, uint32_t bufferWidth,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint32_t bufferHeight, <span class="keywordtype">float</span> segmentationErrorThreshold, <span class="keywordtype">float</span> snapThreshold,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> periodic, <span class="keywordtype">bool</span> expandGaps);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a41aee44d57db3e410d5d9dd5b07632d5">NvBlastExtAuthoringCreateFractureTool</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a8bf20d770ff841495410c94728ee6f7b">NvBlastExtAuthoringCreateBondGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* builder);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> int32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#a15fa5f130ca888ab5d84073112e0ce58">NvBlastExtAuthoringBuildMeshConvexDecomposition</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Nv::Blast::Triangle</a>* mesh,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint32_t triangleCount,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; params,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; convexes);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a364e68eac57e8a26eaf895452c266596">NvBlastExtAuthoringTrimCollisionGeometry</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb, uint32_t chunksCount,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>** in, <span class="keyword">const</span> uint32_t* chunkDepth);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a3684fc5c5d206c429dfc78fe7d1c86b3">NvBlastExtAuthoringTransformCollisionHullInPlace</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#ab5f1213bba94999b576885bc208d30c9">NvBlastExtAuthoringTransformCollisionHull</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>*</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#aa055a16eea150c155525c41f32c82b1c">NvBlastExtAuthoringProcessFracture</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>&amp; bondGenerator,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t defaultSupportDepth = -1);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#af06631688da85de482df0bdc3400959b">NvBlastExtAuthoringReleaseAuthoringResultCollision</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aaaa94617ab23d62f688504cd0e960b10">NvBlastExtAuthoringReleaseAuthoringResult</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a231c56bb096167d21bbbc49cc46c0592">NvBlastExtAuthoringUpdateGraphicsMesh</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aa267355276c6c7f75e11b1d1b401e9aa">NvBlastExtAuthoringBuildCollisionMeshes</a>(<a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; uint32_t chunksToProcessCount, uint32_t* chunksToProcess);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#aa763b10260b7d2a495fb106601977422">NvBlastExtAuthoringCreateMeshCleaner</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#afee92cc71878d2b254360ef3ee223337">NvBlastExtAuthoringFindAssetConnectingBonds</a>(</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> uint32_t** convexHullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*** chunkHulls, uint32_t componentCount,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>*&amp; newBondDescs, <span class="keywordtype">float</span> maxSeparation = 0.0f);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">Nv::Blast::PatternGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a53c22dbb75e939a04e48aa0e9dfe2158">NvBlastExtAuthoringCreatePatternGenerator</a>();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a080affb840f2061b502bfb5db90efc8d">NvBlastExtAuthoringCreateGridAccelerator</a>(uint32_t resolution, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">Nv::Blast::GridWalker</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a179362f88f5da692b27ec497ad7d6ff4">NvBlastExtAuthoringCreateGridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* parent);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORING_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_8h_html_a0d65b4208e0e406c8c61330610845c18"><div class="ttname"><a href="_nv_blast_ext_authoring_8h.html#a0d65b4208e0e406c8c61330610845c18">NvBlastExtAuthoringCreateMeshFromFacets</a></div><div class="ttdeci">Nv::Blast::Mesh * NvBlastExtAuthoringCreateMeshFromFacets(const void *vertices, const void *edges, const void *facets, uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:179</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:52</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html
index 5d8e3ab..e7d78ed 100644
--- a/docs/api_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_accelerator_8h
<div class="title">NvBlastExtAuthoringAccelerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_accelerator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html"> 47</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a"> 81</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a">~SpatialAccelerator</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html"> 88</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a>(int32_t count);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1"> 100</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; int32_t m_count;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; int32_t m_current;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html"> 106</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c"> 108</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2"> 109</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2">index</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a"> 110</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a">SegmentToIndex</a>(<span class="keywordtype">float</span> c, uint32_t i, <span class="keywordtype">bool</span> end) : coord(c), index(i), end(end) {};</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (coord &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (coord &gt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> end &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html"> 124</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html#abfe8ed7f9ebbf369432b57eb7d3409c9"> 129</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>(int32_t resolution);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> setMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; int32_t m_r3;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; int32_t m_mappedFacetCount;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_spos;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_deltas;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; };</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid_walker.html"> 143</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a> <span class="comment">// Iterator to traverse the grid</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* grd);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) <span class="keyword">override</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* m_grid;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; int32_t m_pointCmdDir;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html"> 167</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* in);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500"> 178</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> For fast point test.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_xSegm;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_ySegm;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_zSegm;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;uint32_t&gt; m_indices;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;uint32_t&gt; m_foundx;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;uint32_t&gt; m_foundy;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint32_t m_iterId;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t m_current;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint32_t m_facetCount;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_minimal;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_maximal;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_rescale;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html"> 210</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t resolution);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p) <span class="keyword">override</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3"> 223</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> buildAccelStructure(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* edges, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* fc, int32_t facetCount);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a> m_bounds;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::vector&lt;NvcBounds3&gt; m_cells;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; };</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;} <span class="comment">// namsepace Nv</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_sweeping_accelerator_html_a10d706850f97144678975742b586b500"><div class="ttname"><a href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">Nv::Blast::SweepingAccelerator::setPointCmpDirection</a></div><div class="ttdeci">virtual void setPointCmpDirection(int32_t dir) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:178</div></div>
+<a href="_nv_blast_ext_authoring_accelerator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html"> 47</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a"> 81</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a">~SpatialAccelerator</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html"> 88</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a>(int32_t count);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1"> 100</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; int32_t m_count;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; int32_t m_current;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html"> 106</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c"> 108</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2"> 109</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2">index</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a"> 110</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a">SegmentToIndex</a>(<span class="keywordtype">float</span> c, uint32_t i, <span class="keywordtype">bool</span> end) : coord(c), index(i), end(end) {};</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (coord &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (coord &gt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> end &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html"> 124</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html#abfe8ed7f9ebbf369432b57eb7d3409c9"> 129</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>(int32_t resolution);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> setMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; int32_t m_r3;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; int32_t m_mappedFacetCount;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_spos;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_deltas;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; };</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid_walker.html"> 143</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a> <span class="comment">// Iterator to traverse the grid</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* grd);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) <span class="keyword">override</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* m_grid;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; int32_t m_pointCmdDir;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html"> 167</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* in);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500"> 178</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> For fast point test.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_xSegm;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_ySegm;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_zSegm;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;uint32_t&gt; m_indices;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;uint32_t&gt; m_foundx;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;uint32_t&gt; m_foundy;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint32_t m_iterId;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t m_current;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint32_t m_facetCount;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_minimal;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_maximal;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_rescale;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html"> 210</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t resolution);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p) <span class="keyword">override</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3"> 223</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> buildAccelStructure(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* edges, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* fc, int32_t facetCount);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a> m_bounds;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::vector&lt;NvcBounds3&gt; m_cells;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; };</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;} <span class="comment">// namsepace Nv</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_sweeping_accelerator_html_a10d706850f97144678975742b586b500"><div class="ttname"><a href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">Nv::Blast::SweepingAccelerator::setPointCmpDirection</a></div><div class="ttdeci">virtual void setPointCmpDirection(int32_t dir) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:178</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_b_box_based_accelerator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">Nv::Blast::BBoxBasedAccelerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:210</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_spatial_accelerator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_spatial_accelerator.html">Nv::Blast::SpatialAccelerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:47</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html
index f9e48f6..af3d332 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_bond_generator
<div class="title">NvBlastExtAuthoringBondGenerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_bond_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>FractureTool;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TriangleProcessor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">struct </span>PlaneChunkIndexer;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> { <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745">EXACT</a>, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67af8d9fd52be0dd6e99bde1fffd8975258">AVERAGE</a> };</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418"> 57</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de">bondMode</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html">PlaneChunkIndexer</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f"> 64</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f">chunkId</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6"> 65</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6">trId</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c"> 66</a></span>&#160; <a class="code" href="struct_nvc_plane.html">NvcPlane</a> <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">plane</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f"> 77</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f">~BlastBondGenerator</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> int32_t buildDescFromInternalFracture(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>* tool, <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>*&amp; resultChunkDescriptors) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshACount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshA, uint32_t meshBCount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshB, </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t overlapsCount, <span class="keyword">const</span> uint32_t* overlapsA, <span class="keyword">const</span> uint32_t* overlapsB, </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> cfg) = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* convexHullOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>) = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_plane_chunk_indexer_html_ad7fc6cfbd651eef3d621e14df664fc4c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">Nv::Blast::PlaneChunkIndexer::plane</a></div><div class="ttdeci">NvcPlane plane</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:66</div></div>
+<a href="_nv_blast_ext_authoring_bond_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>FractureTool;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TriangleProcessor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">struct </span>PlaneChunkIndexer;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> { <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745">EXACT</a>, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67af8d9fd52be0dd6e99bde1fffd8975258">AVERAGE</a> };</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418"> 57</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de">bondMode</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html">PlaneChunkIndexer</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f"> 64</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f">chunkId</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6"> 65</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6">trId</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c"> 66</a></span>&#160; <a class="code" href="struct_nvc_plane.html">NvcPlane</a> <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">plane</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f"> 77</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f">~BlastBondGenerator</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> int32_t buildDescFromInternalFracture(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>* tool, <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>*&amp; resultChunkDescriptors) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshACount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshA, uint32_t meshBCount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshB, </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t overlapsCount, <span class="keyword">const</span> uint32_t* overlapsA, <span class="keyword">const</span> uint32_t* overlapsB, </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> cfg) = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* convexHullOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>) = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_plane_chunk_indexer_html_ad7fc6cfbd651eef3d621e14df664fc4c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">Nv::Blast::PlaneChunkIndexer::plane</a></div><div class="ttdeci">NvcPlane plane</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:66</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_plane_chunk_indexer_html_a80203dd762ab3448bf15ebb38035b0c6"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6">Nv::Blast::PlaneChunkIndexer::trId</a></div><div class="ttdeci">int32_t trId</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:65</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_bond_generation_config_html_a039dca7ff2ee57fcf96ce5aad570cf67"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">Nv::Blast::BondGenerationConfig::BondGenMode</a></div><div class="ttdeci">BondGenMode</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:56</div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html
index b587842..333620d 100644
--- a/docs/api_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_convex_mesh_bu
<div class="title">NvBlastExtAuthoringConvexMeshBuilder.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a67c62d633c355aeac7869b2c77b8737b">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#ae9a13bf25c13b682eeb9d1865898706f">buildCollisionGeometry</a>(uint32_t verticesCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* vertexData) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a8fad8e2677dc9e46052e542e9232c3f4">releaseCollisionHull</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
+<a href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a67c62d633c355aeac7869b2c77b8737b">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#ae9a13bf25c13b682eeb9d1865898706f">buildCollisionGeometry</a>(uint32_t verticesCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* vertexData) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a8fad8e2677dc9e46052e542e9232c3f4">releaseCollisionHull</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html_ae9a13bf25c13b682eeb9d1865898706f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#ae9a13bf25c13b682eeb9d1865898706f">Nv::Blast::ConvexMeshBuilder::buildCollisionGeometry</a></div><div class="ttdeci">virtual CollisionHull * buildCollisionGeometry(uint32_t verticesCount, const NvcVec3 *vertexData)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html_a67c62d633c355aeac7869b2c77b8737b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a67c62d633c355aeac7869b2c77b8737b">Nv::Blast::ConvexMeshBuilder::release</a></div><div class="ttdeci">virtual void release()=0</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:133</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html
index 0be7477..f0f019a 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_cutout_8h_sour
<div class="title">NvBlastExtAuthoringCutout.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_cutout_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html"> 36</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#abada00015d8e7fab698ab65979ff1429">getCutoutCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a409a1bb7a56c5224ddc469d555041e16">getCutoutVertexCount</a>(uint32_t cutoutIndex, uint32_t loopIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a8348b26fd9eda511ccb71b1e201d099b">getCutoutLoopCount</a>(uint32_t cutoutIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">getCutoutVertex</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a45d0b1d3f50647cd3b5517b70485f338">isCutoutVertexToggleSmoothingGroup</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6d3a1b817c323ca2385d1cacf52c98ce">isPeriodic</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a7f13e3c6104d0b306d373024b8f4ffc9">getDimensions</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a98936273f2f572f73933a62eded49e6c">release</a>() = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93"> 80</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93">~CutoutSet</a>() {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // idndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html_a6f6877d1b4eacf09ceb2233a79b607e2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">Nv::Blast::CutoutSet::getCutoutVertex</a></div><div class="ttdeci">virtual const NvcVec3 &amp; getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) const =0</div></div>
+<a href="_nv_blast_ext_authoring_cutout_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html"> 36</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#abada00015d8e7fab698ab65979ff1429">getCutoutCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a409a1bb7a56c5224ddc469d555041e16">getCutoutVertexCount</a>(uint32_t cutoutIndex, uint32_t loopIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a8348b26fd9eda511ccb71b1e201d099b">getCutoutLoopCount</a>(uint32_t cutoutIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">getCutoutVertex</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a45d0b1d3f50647cd3b5517b70485f338">isCutoutVertexToggleSmoothingGroup</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6d3a1b817c323ca2385d1cacf52c98ce">isPeriodic</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a7f13e3c6104d0b306d373024b8f4ffc9">getDimensions</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a98936273f2f572f73933a62eded49e6c">release</a>() = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93"> 80</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93">~CutoutSet</a>() {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // idndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html_a6f6877d1b4eacf09ceb2233a79b607e2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">Nv::Blast::CutoutSet::getCutoutVertex</a></div><div class="ttdeci">virtual const NvcVec3 &amp; getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html_a6122cea44eca2907f01ec61f1d963e93"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93">Nv::Blast::CutoutSet::~CutoutSet</a></div><div class="ttdeci">virtual ~CutoutSet()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutout.h:80</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutout.h:36</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html
index 8c9f366..5b813ff 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_
<div class="title">NvBlastExtAuthoringFractureTool.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff"> 52</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff">APPROXIMATE_BONDING</a> = 1 <span class="comment">// Created by island splitting or chunk merge, etc. and should check for inexact bonds</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Noise fracturing configuration for chunks&#39;s faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>&#160; <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>&#160; <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>&#160; uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>&#160; int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>&#160; <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>&#160; <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>&#160; <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>&#160; <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>&#160; <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>&#160; <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*&amp; sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; normal, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; offset, <span class="keywordtype">float</span>&amp; scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>&amp; rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; normal, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>&amp; noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>&amp; getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*&amp; output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*&amp; chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*&amp; vertexBuffer, uint32_t*&amp; indexBuffer, uint32_t*&amp; indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteChunkSubhierarchy(int32_t chunkId, <span class="keywordtype">bool</span> deleteRoot = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setApproximateBonding(uint32_t chunkIndex, <span class="keywordtype">bool</span> useApproximateBonding) = 0;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;};</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div>
+<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff"> 52</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff">APPROXIMATE_BONDING</a> = 1 <span class="comment">// Created by island splitting or chunk merge, etc. and should check for inexact bonds</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Noise fracturing configuration for chunks&#39;s faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>&#160; <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>&#160; <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>&#160; uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>&#160; int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>&#160; <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>&#160; <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>&#160; <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>&#160; <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>&#160; <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>&#160; <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*&amp; sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; normal, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; offset, <span class="keywordtype">float</span>&amp; scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>&amp; rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; normal, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>&amp; noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>&amp; getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*&amp; output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*&amp; chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*&amp; vertexBuffer, uint32_t*&amp; indexBuffer, uint32_t*&amp; indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteChunkSubhierarchy(int32_t chunkId, <span class="keywordtype">bool</span> deleteRoot = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setApproximateBonding(uint32_t chunkIndex, <span class="keywordtype">bool</span> useApproximateBonding) = 0;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;};</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html">Nv::Blast::ChunkInfo</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:179</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutout.h:36</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html
index 0b588c6..b99b160 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_8h_source
<div class="title">NvBlastExtAuthoringMesh.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7"> 46</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7">~Mesh</a>() {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adf6faa07b98b634b86a198ad4a6fcc14">release</a>() = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acc7ba66081cfd2bd55c5eae7d6053c71">isValid</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a55945b655bb1cb9fed0d481497942c71">getVerticesWritable</a>() = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a927148143ec2335c9ed6dd9c65215196">getVertices</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">getEdgesWritable</a>() = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a085ffcc67f9cd938f93d3aa43a0d0bf0">getEdges</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a480c3919561789e75df950aea69fec4a">getFacetsBufferWritable</a>() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adcee600d1e263eedc13561b99c7ea762">getFacetsBuffer</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2f6a3389000c02e892d4514fd1322765">getFacetWritable</a>(int32_t facet) = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a1737163f2dc8fe4456f5df27ab5740b8">getFacet</a>(int32_t facet) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#afc8859fe20911e2ab593b9075223a36a">getEdgesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ab86107cfd02392fd2a49b79fe0367887">getVerticesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a5bb922c1dcb50c67e2105f84454019af">getFacetCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2dcb0655c4e75c15dd465e756ec6f174">getBoundingBox</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ad7c27dcdd5d5f28da04605410721d016">getBoundingBoxWritable</a>() = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#af082c3fd4ea1badcb0263bad0682c20b">setMaterialId</a>(<span class="keyword">const</span> int32_t* materialIds) = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acfffa10ab877367067c0651320e39852">replaceMaterialId</a>(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#aed83e124b04216f54989ea9f8ade52d7">setSmoothingGroup</a>(<span class="keyword">const</span> int32_t* smoothingGroups) = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a24544d5b6a315cee19d67da9ed0fd8dd">recalculateBoundingBox</a>() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a220f3c64f6a192843ab44c3728960820">getMeshVolume</a>() = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a3cb47793b60f763b5bac58c17a3c5bb8">calcPerFacetBounds</a>() = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a93b7642d29e27da93b76d420a804aef2">getFacetBound</a>(uint32_t index) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_ac3e5b150bd16d7f22b22fb571de9004f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">Nv::Blast::Mesh::getEdgesWritable</a></div><div class="ttdeci">virtual Edge * getEdgesWritable()=0</div></div>
+<a href="_nv_blast_ext_authoring_mesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7"> 46</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7">~Mesh</a>() {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adf6faa07b98b634b86a198ad4a6fcc14">release</a>() = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acc7ba66081cfd2bd55c5eae7d6053c71">isValid</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a55945b655bb1cb9fed0d481497942c71">getVerticesWritable</a>() = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a927148143ec2335c9ed6dd9c65215196">getVertices</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">getEdgesWritable</a>() = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a085ffcc67f9cd938f93d3aa43a0d0bf0">getEdges</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a480c3919561789e75df950aea69fec4a">getFacetsBufferWritable</a>() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adcee600d1e263eedc13561b99c7ea762">getFacetsBuffer</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2f6a3389000c02e892d4514fd1322765">getFacetWritable</a>(int32_t facet) = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a1737163f2dc8fe4456f5df27ab5740b8">getFacet</a>(int32_t facet) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#afc8859fe20911e2ab593b9075223a36a">getEdgesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ab86107cfd02392fd2a49b79fe0367887">getVerticesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a5bb922c1dcb50c67e2105f84454019af">getFacetCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2dcb0655c4e75c15dd465e756ec6f174">getBoundingBox</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ad7c27dcdd5d5f28da04605410721d016">getBoundingBoxWritable</a>() = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#af082c3fd4ea1badcb0263bad0682c20b">setMaterialId</a>(<span class="keyword">const</span> int32_t* materialIds) = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acfffa10ab877367067c0651320e39852">replaceMaterialId</a>(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#aed83e124b04216f54989ea9f8ade52d7">setSmoothingGroup</a>(<span class="keyword">const</span> int32_t* smoothingGroups) = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a24544d5b6a315cee19d67da9ed0fd8dd">recalculateBoundingBox</a>() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a220f3c64f6a192843ab44c3728960820">getMeshVolume</a>() = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a3cb47793b60f763b5bac58c17a3c5bb8">calcPerFacetBounds</a>() = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a93b7642d29e27da93b76d420a804aef2">getFacetBound</a>(uint32_t index) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_ac3e5b150bd16d7f22b22fb571de9004f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">Nv::Blast::Mesh::getEdgesWritable</a></div><div class="ttdeci">virtual Edge * getEdgesWritable()=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_a2f6a3389000c02e892d4514fd1322765"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#a2f6a3389000c02e892d4514fd1322765">Nv::Blast::Mesh::getFacetWritable</a></div><div class="ttdeci">virtual Facet * getFacetWritable(int32_t facet)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_aed83e124b04216f54989ea9f8ade52d7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#aed83e124b04216f54989ea9f8ade52d7">Nv::Blast::Mesh::setSmoothingGroup</a></div><div class="ttdeci">virtual void setSmoothingGroup(const int32_t *smoothingGroups)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_a480c3919561789e75df950aea69fec4a"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#a480c3919561789e75df950aea69fec4a">Nv::Blast::Mesh::getFacetsBufferWritable</a></div><div class="ttdeci">virtual Facet * getFacetsBufferWritable()=0</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html
index 39c01f3..db22219 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_cleaner_8
<div class="title">NvBlastExtAuthoringMeshCleaner.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc"> 55</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">~MeshCleaner</a>() {}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a6681704bd0186e56c55f7b9ba9174d27">cleanMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9cb8249f4619e4e1169ae1553d3bdd41">release</a>() = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html_a9716fd1256337c0149bbed8d447438bc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">Nv::Blast::MeshCleaner::~MeshCleaner</a></div><div class="ttdeci">virtual ~MeshCleaner()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:55</div></div>
+<a href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc"> 55</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">~MeshCleaner</a>() {}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a6681704bd0186e56c55f7b9ba9174d27">cleanMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9cb8249f4619e4e1169ae1553d3bdd41">release</a>() = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html_a9716fd1256337c0149bbed8d447438bc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">Nv::Blast::MeshCleaner::~MeshCleaner</a></div><div class="ttdeci">virtual ~MeshCleaner()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:52</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMesh.h:42</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html
index ccf7d55..7da7ead 100644
--- a/docs/api_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_pattern_genera
<div class="title">NvBlastExtAuthoringPatternGenerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_pattern_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88"> 38</a></span>&#160; <span class="keyword">typedef</span> float (*<a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a>)(void);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html"> 40</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b"> 42</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b">RNG</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb"> 44</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a> = 1000;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html"> 47</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a815577cc15070656e2b14ed6c6c234cd"> 49</a></span>&#160; uint32_t cellsCount = 2;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a72c7c391785fcf3eb929db06b4a3acc4"> 51</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a8c666220227a45ab0e29fb72348c295d"> 52</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#afcf560708a0214765d01ce4fd2c382ae"> 53</a></span>&#160; <span class="keywordtype">float</span> radiusDistr = 1.0f;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#ac86e7fcca3804d3b554f0ea153ee6516"> 55</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html"> 58</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9">cellsCount</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179"> 62</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179">radiusMin</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa"> 63</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">radiusMax</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html"> 66</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8db39b69e964d8101adda7fcd6d0ca31"> 68</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a0ff8d3f6ca0577fe576b63b365f4d2d1"> 69</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#ab0d4e2ba3b7301e42dd366164f926462"> 71</a></span>&#160; uint32_t radialSteps = 3;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a05be2d62a3e6c523f4fefd38eb051ac3"> 72</a></span>&#160; uint32_t angularSteps = 8;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#aea9dd71b7e45e775ce616f155680e1c2"> 74</a></span>&#160; <span class="keywordtype">float</span> aperture = .0f;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a2c56c6584f48516069a0e9196888053f"> 76</a></span>&#160; <span class="keywordtype">float</span> angularNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a88b0bfd26937828f0a94f48246731b39"> 78</a></span>&#160; <span class="keywordtype">float</span> radialNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a838cc159e772872072e0efc65ab39f29"> 79</a></span>&#160; <span class="keywordtype">float</span> radialNoiseFrequency = 0.0f;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8fb32b5eaf08288834fecf87064a623a"> 81</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html"> 85</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17"> 90</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17">activationRadius</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9"> 91</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9">angle</a>; <span class="comment">// For cone shape activation</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b"> 92</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154bafa9e687314a5a446df72c678e5bb63ba"> 94</a></span>&#160; Point = 0,</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5">Line</a>,</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba2274b06a8d29f17584653284b7fd86c5"> 96</a></span>&#160; Cone</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4e82aa0e47674b6a14cbeae50563a6ea"> 98</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a> activationType = Point;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// ----------------------------------------------</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d"> 102</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d">cellsCount</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#ae22859e075aa4f750ba79ab7dce42059"> 103</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>** cellsMeshes = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_pattern_generator.html"> 108</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateUniformPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateBeamPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateRegularRadialPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateVoronoiPattern(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a>) = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a2af6111d7b1e477fa7b5aee4fec5bdfc">savePatternToObj</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_beam_pattern_desc_html_ac5cc1c03da7cac8a6ed0c0c1db2626aa"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">Nv::Blast::BeamPatternDesc::radiusMax</a></div><div class="ttdeci">float radiusMax</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:63</div></div>
+<a href="_nv_blast_ext_authoring_pattern_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88"> 38</a></span>&#160; <span class="keyword">typedef</span> float (*<a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a>)(void);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html"> 40</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b"> 42</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b">RNG</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb"> 44</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a> = 1000;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html"> 47</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a815577cc15070656e2b14ed6c6c234cd"> 49</a></span>&#160; uint32_t cellsCount = 2;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a72c7c391785fcf3eb929db06b4a3acc4"> 51</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a8c666220227a45ab0e29fb72348c295d"> 52</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#afcf560708a0214765d01ce4fd2c382ae"> 53</a></span>&#160; <span class="keywordtype">float</span> radiusDistr = 1.0f;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#ac86e7fcca3804d3b554f0ea153ee6516"> 55</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html"> 58</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9">cellsCount</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179"> 62</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179">radiusMin</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa"> 63</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">radiusMax</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html"> 66</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8db39b69e964d8101adda7fcd6d0ca31"> 68</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a0ff8d3f6ca0577fe576b63b365f4d2d1"> 69</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#ab0d4e2ba3b7301e42dd366164f926462"> 71</a></span>&#160; uint32_t radialSteps = 3;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a05be2d62a3e6c523f4fefd38eb051ac3"> 72</a></span>&#160; uint32_t angularSteps = 8;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#aea9dd71b7e45e775ce616f155680e1c2"> 74</a></span>&#160; <span class="keywordtype">float</span> aperture = .0f;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a2c56c6584f48516069a0e9196888053f"> 76</a></span>&#160; <span class="keywordtype">float</span> angularNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a88b0bfd26937828f0a94f48246731b39"> 78</a></span>&#160; <span class="keywordtype">float</span> radialNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a838cc159e772872072e0efc65ab39f29"> 79</a></span>&#160; <span class="keywordtype">float</span> radialNoiseFrequency = 0.0f;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8fb32b5eaf08288834fecf87064a623a"> 81</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html"> 85</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17"> 90</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17">activationRadius</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9"> 91</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9">angle</a>; <span class="comment">// For cone shape activation</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b"> 92</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154bafa9e687314a5a446df72c678e5bb63ba"> 94</a></span>&#160; Point = 0,</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5">Line</a>,</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba2274b06a8d29f17584653284b7fd86c5"> 96</a></span>&#160; Cone</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4e82aa0e47674b6a14cbeae50563a6ea"> 98</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a> activationType = Point;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// ----------------------------------------------</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d"> 102</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d">cellsCount</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#ae22859e075aa4f750ba79ab7dce42059"> 103</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>** cellsMeshes = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_pattern_generator.html"> 108</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateUniformPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateBeamPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateRegularRadialPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateVoronoiPattern(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a>) = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a2af6111d7b1e477fa7b5aee4fec5bdfc">savePatternToObj</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_beam_pattern_desc_html_ac5cc1c03da7cac8a6ed0c0c1db2626aa"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">Nv::Blast::BeamPatternDesc::radiusMax</a></div><div class="ttdeci">float radiusMax</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:63</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_uniform_pattern_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">Nv::Blast::UniformPatternDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:47</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_beam_pattern_desc_html_abb1b2e8d9e8b50f7d2be7a20e1b55179"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179">Nv::Blast::BeamPatternDesc::radiusMin</a></div><div class="ttdeci">float radiusMin</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:62</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_beam_pattern_desc_html_ad79ccd96c8ec0a78b5b95454b86f4fd9"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9">Nv::Blast::BeamPatternDesc::cellsCount</a></div><div class="ttdeci">uint32_t cellsCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:60</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_types_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_types_8h_source.html
index 1f8244a..8f59665 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_types_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_types_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_types_8h_sourc
<div class="title">NvBlastExtAuthoringTypes.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138"> 42</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a> = 1000;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4"> 47</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4">kSmoothingGroupInteriorId</a> = 1000;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea"> 52</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea">kNotValidVertexIndex</a> = UINT32_MAX;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html"> 57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032">Edge</a>(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> = kNotValidVertexIndex, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a> = kNotValidVertexIndex) : <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>), <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>) {}</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html"> 67</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09">Vertex</a>() {};</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654">Vertex</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; n, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; _uv) : p(p), n(n) { uv[0] = _uv; }</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18"> 71</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>; <span class="comment">// Position</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4"> 72</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>; <span class="comment">// Normal</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa"> 73</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> uv[1]; <span class="comment">// UV-coordinates array, currently supported only one UV coordinate.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c"> 81</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c">Triangle</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9"> 82</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9">Triangle</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; c, int32_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; : a(a), b(b), c(c), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a> a, b, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def">c</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175"> 85</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175">userData</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3"> 86</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3">materialId</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199"> 87</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199">smoothingGroup</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;};</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html">TriangleIndexed</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185">TriangleIndexed</a>(uint32_t ea, uint32_t eb, uint32_t ec, int32_t mid = 0, int32_t sid = 0, int32_t ud = 0)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; : ea(ea), eb(eb), ec(ec), materialId(mid), smoothingGroup(sid), userData(ud) {}</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116"> 97</a></span>&#160; uint32_t ea, eb, <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116">ec</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a"> 98</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a">materialId</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104"> 99</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104">smoothingGroup</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69"> 100</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69">userData</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html"> 106</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4"> 108</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4">Facet</a>(int32_t fen = 0, uint32_t ec = 0, int64_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; : firstEdgeNumber(fen), edgesCount(ec), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b"> 110</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b">firstEdgeNumber</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94"> 111</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94">edgesCount</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef"> 112</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef">userData</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61"> 113</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61">materialId</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c"> 114</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c">smoothingGroup</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html"> 120</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Polygon base plane</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab97c5352a6a9264703ae02c59dd3bb0f"> 123</a></span>&#160; <span class="keywordtype">float</span> plane[4];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Number vertices in polygon</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2"> 125</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// First index in CollisionHull.indices array for this polygon</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5"> 127</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">indicesCount</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4">polygonDataCount</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b"> 138</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1"> 139</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da">polygonData</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1"> 150</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1">chunkCount</a>; <span class="comment">// Number of chunks in Blast asset</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51"> 152</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51">bondCount</a>; <span class="comment">// Number of bonds in Blast asset</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b"> 154</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b">asset</a>; <span class="comment">// Blast asset</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4"> 160</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4">assetToFractureChunkIdMap</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe"> 167</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe">geometryOffset</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1"> 169</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1">geometry</a>; <span class="comment">// Raw array of Triangle for all chunks</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f"> 171</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f">chunkDescs</a>; <span class="comment">// Array of chunk descriptors. Contains chunkCount elements</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be"> 173</a></span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be">bondDescs</a>; <span class="comment">// Array of bond descriptors. Contains bondCount elements</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677"> 180</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677">collisionHullOffset</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e"> 182</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e">collisionHull</a>; <span class="comment">// Raw array of pointers to collision hull for all chunks.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa"> 187</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa">materialNames</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956"> 192</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956">materialCount</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;};</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html"> 195</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">ConvexDecompositionParams</a></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a14193f570e7283bb6896f1174f48a10b"> 197</a></span>&#160; uint32_t maximumNumberOfHulls = 8; <span class="comment">// Maximum number of convex hull generated for one chunk. If equal to 1 convex</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// decomposition is disabled.</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a91f651c59c7c3b6082de11909eaddfb1"> 199</a></span>&#160; uint32_t maximumNumberOfVerticesPerHull = 64; <span class="comment">// Controls the maximum number of triangles per convex-hull</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// (default=64, range=4-1024)</span></div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ad1cedec2b083ef11141bd54fda1a82ae"> 201</a></span>&#160; uint32_t voxelGridResolution = 1000000; <span class="comment">// Voxel grid resolution used for chunk convex decomposition</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// (default=1,000,000, range=10,000-16,000,000).</span></div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ae66625f452b5578381a72f82f442c772"> 203</a></span>&#160; <span class="keywordtype">float</span> concavity = 0.0025f; <span class="comment">// Value between 0 and 1, controls how accurate hull generation is</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html_a8fc10101ef8bf4b6727a327b39618245"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">Nv::Blast::CollisionHull::indicesCount</a></div><div class="ttdeci">uint32_t indicesCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:136</div></div>
+<a href="_nv_blast_ext_authoring_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138"> 42</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a> = 1000;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4"> 47</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4">kSmoothingGroupInteriorId</a> = 1000;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea"> 52</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea">kNotValidVertexIndex</a> = UINT32_MAX;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html"> 57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032">Edge</a>(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> = kNotValidVertexIndex, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a> = kNotValidVertexIndex) : <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>), <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>) {}</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html"> 67</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09">Vertex</a>() {};</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654">Vertex</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; n, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; _uv) : p(p), n(n) { uv[0] = _uv; }</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18"> 71</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>; <span class="comment">// Position</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4"> 72</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>; <span class="comment">// Normal</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa"> 73</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> uv[1]; <span class="comment">// UV-coordinates array, currently supported only one UV coordinate.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c"> 81</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c">Triangle</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9"> 82</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9">Triangle</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; c, int32_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; : a(a), b(b), c(c), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a> a, b, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def">c</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175"> 85</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175">userData</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3"> 86</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3">materialId</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199"> 87</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199">smoothingGroup</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;};</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html">TriangleIndexed</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185">TriangleIndexed</a>(uint32_t ea, uint32_t eb, uint32_t ec, int32_t mid = 0, int32_t sid = 0, int32_t ud = 0)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; : ea(ea), eb(eb), ec(ec), materialId(mid), smoothingGroup(sid), userData(ud) {}</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116"> 97</a></span>&#160; uint32_t ea, eb, <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116">ec</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a"> 98</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a">materialId</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104"> 99</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104">smoothingGroup</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69"> 100</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69">userData</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html"> 106</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4"> 108</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4">Facet</a>(int32_t fen = 0, uint32_t ec = 0, int64_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; : firstEdgeNumber(fen), edgesCount(ec), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b"> 110</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b">firstEdgeNumber</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94"> 111</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94">edgesCount</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef"> 112</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef">userData</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61"> 113</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61">materialId</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c"> 114</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c">smoothingGroup</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html"> 120</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Polygon base plane</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab97c5352a6a9264703ae02c59dd3bb0f"> 123</a></span>&#160; <span class="keywordtype">float</span> plane[4];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Number vertices in polygon</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2"> 125</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// First index in CollisionHull.indices array for this polygon</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5"> 127</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">indicesCount</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4">polygonDataCount</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b"> 138</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1"> 139</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da">polygonData</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1"> 150</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1">chunkCount</a>; <span class="comment">// Number of chunks in Blast asset</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51"> 152</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51">bondCount</a>; <span class="comment">// Number of bonds in Blast asset</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b"> 154</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b">asset</a>; <span class="comment">// Blast asset</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4"> 160</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4">assetToFractureChunkIdMap</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe"> 167</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe">geometryOffset</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1"> 169</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1">geometry</a>; <span class="comment">// Raw array of Triangle for all chunks</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f"> 171</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f">chunkDescs</a>; <span class="comment">// Array of chunk descriptors. Contains chunkCount elements</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be"> 173</a></span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be">bondDescs</a>; <span class="comment">// Array of bond descriptors. Contains bondCount elements</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677"> 180</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677">collisionHullOffset</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e"> 182</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e">collisionHull</a>; <span class="comment">// Raw array of pointers to collision hull for all chunks.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa"> 187</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa">materialNames</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956"> 192</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956">materialCount</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;};</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html"> 195</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">ConvexDecompositionParams</a></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a14193f570e7283bb6896f1174f48a10b"> 197</a></span>&#160; uint32_t maximumNumberOfHulls = 8; <span class="comment">// Maximum number of convex hull generated for one chunk. If equal to 1 convex</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// decomposition is disabled.</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a91f651c59c7c3b6082de11909eaddfb1"> 199</a></span>&#160; uint32_t maximumNumberOfVerticesPerHull = 64; <span class="comment">// Controls the maximum number of triangles per convex-hull</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// (default=64, range=4-1024)</span></div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ad1cedec2b083ef11141bd54fda1a82ae"> 201</a></span>&#160; uint32_t voxelGridResolution = 1000000; <span class="comment">// Voxel grid resolution used for chunk convex decomposition</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// (default=1,000,000, range=10,000-16,000,000).</span></div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ae66625f452b5578381a72f82f442c772"> 203</a></span>&#160; <span class="keywordtype">float</span> concavity = 0.0025f; <span class="comment">// Value between 0 and 1, controls how accurate hull generation is</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html_a8fc10101ef8bf4b6727a327b39618245"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">Nv::Blast::CollisionHull::indicesCount</a></div><div class="ttdeci">uint32_t indicesCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:136</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_html_ae06c88ae71857d247fd27130265f5e25"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">Nv::Blast::Edge::e</a></div><div class="ttdeci">uint32_t e</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:61</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_authoring_result_html_a7a4780c1ce983189255f072042b457be"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be">Nv::Blast::AuthoringResult::bondDescs</a></div><div class="ttdeci">NvBlastBondDesc * bondDescs</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:173</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_triangle_html_a7161aa4637570593093cac005c843175"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175">Nv::Blast::Triangle::userData</a></div><div class="ttdeci">int32_t userData</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:85</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html
index ba148ce..a266001 100755
--- a/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html
+++ b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h-source.html
@@ -52,120 +52,121 @@
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "PxProfiler.h"</span>
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 <span class="preprocessor">#if NV_NVTX </span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#include "nvToolsExt.h"</span>
-<a name="l00037"></a>00037 NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }
-<a name="l00038"></a>00038 NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }
-<a name="l00039"></a>00039
-<a name="l00040"></a>00040 <span class="preprocessor">#elif NV_XBOXONE</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#include "xboxone/NvBlastProfilerXB1.h"</span>
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 <span class="preprocessor">#elif NV_PS4</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#include "ps4/NvBlastProfilerPS4.h"</span>
-<a name="l00045"></a>00045
-<a name="l00046"></a>00046 <span class="preprocessor">#else</span>
-<a name="l00047"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">00047</a> <span class="preprocessor"></span>NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }
-<a name="l00048"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">00048</a> NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }
-<a name="l00049"></a>00049
-<a name="l00050"></a>00050 <span class="preprocessor">#endif</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span>
-<a name="l00052"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#c2330888dc0d7693449501ca70ce0b18">00052</a> <span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>
-<a name="l00054"></a>00054 <span class="keyword">namespace </span>Nv
-<a name="l00055"></a>00055 {
-<a name="l00056"></a>00056 <span class="keyword">namespace </span>Blast
-<a name="l00057"></a>00057 {
-<a name="l00058"></a>00058
-<a name="l00059"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">00059</a> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>
-<a name="l00060"></a>00060 {
-<a name="l00061"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">00061</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>;
-<a name="l00062"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">00062</a> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>;
-<a name="l00063"></a>00063 };
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;
-<a name="l00067"></a>00067 <span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];
-<a name="l00068"></a>00068 <span class="keyword">static</span> thread_local int32_t th_depth = 0;
-<a name="l00069"></a>00069 <span class="preprocessor">#endif</span>
-<a name="l00070"></a>00070 <span class="preprocessor"></span>
-<a name="l00071"></a>00071
-<a name="l00076"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">00076</a> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a>
-<a name="l00077"></a>00077 {
-<a name="l00078"></a>00078 <span class="keyword">public</span>:
-<a name="l00082"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">00082</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}
-<a name="l00083"></a>00083
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;PxFoundation.h&gt;</span>
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="preprocessor">#if NV_NVTX </span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#include "nvToolsExt.h"</span>
+<a name="l00038"></a>00038 NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }
+<a name="l00039"></a>00039 NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="preprocessor">#elif NV_XBOXONE</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#include "xboxone/NvBlastProfilerXB1.h"</span>
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="preprocessor">#elif NV_PS4</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#include "ps4/NvBlastProfilerPS4.h"</span>
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="preprocessor">#else</span>
+<a name="l00048"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">00048</a> <span class="preprocessor"></span>NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }
+<a name="l00049"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">00049</a> NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#c2330888dc0d7693449501ca70ce0b18">00053</a> <span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span>
+<a name="l00055"></a>00055 <span class="keyword">namespace </span>Nv
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <span class="keyword">namespace </span>Blast
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059
+<a name="l00060"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">00060</a> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>
+<a name="l00061"></a>00061 {
+<a name="l00062"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">00062</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>;
+<a name="l00063"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">00063</a> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>;
+<a name="l00064"></a>00064 };
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;
+<a name="l00068"></a>00068 <span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];
+<a name="l00069"></a>00069 <span class="keyword">static</span> thread_local int32_t th_depth = 0;
+<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span>
+<a name="l00072"></a>00072
+<a name="l00077"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">00077</a> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a>
+<a name="l00078"></a>00078 {
+<a name="l00079"></a>00079 <span class="keyword">public</span>:
+<a name="l00083"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">00083</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}
<a name="l00084"></a>00084
-<a name="l00086"></a>00086
-<a name="l00087"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">00087</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)<span class="keyword"> override</span>
-<a name="l00088"></a>00088 <span class="keyword"> </span>{
-<a name="l00089"></a>00089
-<a name="l00090"></a>00090 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
-<a name="l00091"></a>00091 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
-<a name="l00092"></a>00092 {
-<a name="l00093"></a>00093 <span class="keywordtype">void</span>* data = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)
-<a name="l00096"></a>00096 {
-<a name="l00097"></a>00097 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a> = name;
-<a name="l00098"></a>00098 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a> = data;
-<a name="l00099"></a>00099 th_depth++;
-<a name="l00100"></a>00100 }
-<a name="l00101"></a>00101 <span class="keywordflow">else</span>
-<a name="l00102"></a>00102 {
-<a name="l00103"></a>00103 assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);
-<a name="l00104"></a>00104 }
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 <span class="preprocessor">#endif</span>
-<a name="l00107"></a>00107 <span class="preprocessor"></span>
-<a name="l00108"></a>00108 <span class="keywordflow">if</span> (m_platformEnabled)
-<a name="l00109"></a>00109 {
-<a name="l00110"></a>00110 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);
-<a name="l00111"></a>00111 }
-<a name="l00112"></a>00112 }
-<a name="l00113"></a>00113
-<a name="l00114"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">00114</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span>
-<a name="l00115"></a>00115 <span class="keyword"> </span>{
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
-<a name="l00118"></a>00118 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
-<a name="l00119"></a>00119 {
-<a name="l00120"></a>00120 th_depth--;
-<a name="l00121"></a>00121
-<a name="l00122"></a>00122 <span class="keywordflow">if</span> (th_depth &gt;= 0)
-<a name="l00123"></a>00123 {
-<a name="l00124"></a>00124 <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];
-<a name="l00125"></a>00125 PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);
-<a name="l00126"></a>00126 }
-<a name="l00127"></a>00127 <span class="keywordflow">else</span>
-<a name="l00128"></a>00128 {
-<a name="l00129"></a>00129 assert(th_depth &gt;= 0);
-<a name="l00130"></a>00130 }
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132 <span class="preprocessor">#endif</span>
-<a name="l00133"></a>00133 <span class="preprocessor"></span>
-<a name="l00134"></a>00134 <span class="keywordflow">if</span> (m_platformEnabled)
-<a name="l00135"></a>00135 {
-<a name="l00136"></a>00136 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();
-<a name="l00137"></a>00137 }
-<a name="l00138"></a>00138 }
-<a name="l00139"></a>00139
+<a name="l00085"></a>00085
+<a name="l00087"></a>00087
+<a name="l00088"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">00088</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)<span class="keyword"> override</span>
+<a name="l00089"></a>00089 <span class="keyword"> </span>{
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 <span class="keywordtype">void</span>* data = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)
+<a name="l00097"></a>00097 {
+<a name="l00098"></a>00098 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a> = name;
+<a name="l00099"></a>00099 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a> = data;
+<a name="l00100"></a>00100 th_depth++;
+<a name="l00101"></a>00101 }
+<a name="l00102"></a>00102 <span class="keywordflow">else</span>
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104 assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 }
+<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109 <span class="keywordflow">if</span> (m_platformEnabled)
+<a name="l00110"></a>00110 {
+<a name="l00111"></a>00111 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114
+<a name="l00115"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">00115</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span>
+<a name="l00116"></a>00116 <span class="keyword"> </span>{
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
+<a name="l00119"></a>00119 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
+<a name="l00120"></a>00120 {
+<a name="l00121"></a>00121 th_depth--;
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 <span class="keywordflow">if</span> (th_depth &gt;= 0)
+<a name="l00124"></a>00124 {
+<a name="l00125"></a>00125 <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];
+<a name="l00126"></a>00126 PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128 <span class="keywordflow">else</span>
+<a name="l00129"></a>00129 {
+<a name="l00130"></a>00130 assert(th_depth &gt;= 0);
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133 <span class="preprocessor">#endif</span>
+<a name="l00134"></a>00134 <span class="preprocessor"></span>
+<a name="l00135"></a>00135 <span class="keywordflow">if</span> (m_platformEnabled)
+<a name="l00136"></a>00136 {
+<a name="l00137"></a>00137 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();
+<a name="l00138"></a>00138 }
+<a name="l00139"></a>00139 }
<a name="l00140"></a>00140
-<a name="l00142"></a>00142
-<a name="l00148"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">00148</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)
-<a name="l00149"></a>00149 {
-<a name="l00150"></a>00150 m_platformEnabled = enabled;
-<a name="l00151"></a>00151 }
-<a name="l00152"></a>00152
-<a name="l00153"></a>00153 <span class="keyword">private</span>:
-<a name="l00154"></a>00154 <span class="keywordtype">bool</span> m_platformEnabled;
-<a name="l00155"></a>00155 };
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 } <span class="comment">// namespace Blast</span>
-<a name="l00158"></a>00158 } <span class="comment">// namespace Nv</span>
-<a name="l00159"></a>00159
+<a name="l00141"></a>00141
+<a name="l00143"></a>00143
+<a name="l00149"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">00149</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)
+<a name="l00150"></a>00150 {
+<a name="l00151"></a>00151 m_platformEnabled = enabled;
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 <span class="keyword">private</span>:
+<a name="l00155"></a>00155 <span class="keywordtype">bool</span> m_platformEnabled;
+<a name="l00156"></a>00156 };
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 } <span class="comment">// namespace Blast</span>
+<a name="l00159"></a>00159 } <span class="comment">// namespace Nv</span>
<a name="l00160"></a>00160
-<a name="l00161"></a>00161 <span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span>
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 <span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span>
</pre></div></div>
<!-- start footer part -->
<div class="footer">
diff --git a/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html
index 13b5fa4..aaf2e2e 100755
--- a/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html
+++ b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h.html
@@ -22,6 +22,7 @@
<div class="contents">
<h1>sdk/extensions/physx/include/NvBlastExtCustomProfiler.h File Reference</h1><code>#include &quot;<a class="el" href="_nv_blast_profiler_8h-source.html">NvBlastProfiler.h</a>&quot;</code><br>
<code>#include &quot;PxProfiler.h&quot;</code><br>
+<code>#include &lt;PxFoundation.h&gt;</code><br>
<p>
<a href="_nv_blast_ext_custom_profiler_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
diff --git a/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h_source.html b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h_source.html
index 9e2f9a4..e8e03ec 100755
--- a/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_custom_profiler_8h_source.html
@@ -38,18 +38,18 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_custom_profiler_8h_sourc
<div class="title">NvBlastExtCustomProfiler.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_custom_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxProfiler.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if NV_NVTX </span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;nvToolsExt.h&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#elif NV_XBOXONE</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;xboxone/NvBlastProfilerXB1.h&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;ps4/NvBlastProfilerPS4.h&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef"> 47</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c"> 48</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#ac2330888dc0d7693449501ca70ce0b18"> 52</a></span>&#160;<span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html"> 59</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83"> 61</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d"> 62</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">static</span> thread_local int32_t th_depth = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html"> 76</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6"> 82</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1"> 87</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>)<span class="keyword"> override</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a> = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; th_ProfileData[th_depth].name = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; th_ProfileData[th_depth].data = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; th_depth++;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b"> 114</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; th_depth--;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (th_depth &gt;= 0)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; assert(th_depth &gt;= 0);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94"> 148</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_platformEnabled = enabled;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">bool</span> m_platformEnabled;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;};</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a78b9d61f6da77c27fe4436997363dfb1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">Nv::Blast::ExtCustomProfiler::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:87</div></div>
-<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa1585207662452977fb8b6593e71f40c"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a></div><div class="ttdeci">NV_INLINE void platformZoneEnd()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:48</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">Nv::Blast::ExtCustomProfiler</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:76</div></div>
-<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa73cff190baa0fe10aa4b5d21dd5a7ef"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a></div><div class="ttdeci">NV_INLINE void platformZoneStart(const char *)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:47</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a326703192c1cef7196f271e6dd47bd94"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">Nv::Blast::ExtCustomProfiler::setPlatformEnabled</a></div><div class="ttdeci">void setPlatformEnabled(bool enabled)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:148</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a9e7434d8654794fc69d7f0b7afab22d6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">Nv::Blast::ExtCustomProfiler::ExtCustomProfiler</a></div><div class="ttdeci">ExtCustomProfiler()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:82</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_abe4743b5975ad80c6495167c7a47174b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">Nv::Blast::ExtCustomProfiler::zoneEnd</a></div><div class="ttdeci">virtual void zoneEnd() override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:114</div></div>
+<a href="_nv_blast_ext_custom_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxProfiler.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxFoundation.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if NV_NVTX </span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;nvToolsExt.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#elif NV_XBOXONE</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;xboxone/NvBlastProfilerXB1.h&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;ps4/NvBlastProfilerPS4.h&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef"> 48</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c"> 49</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#ac2330888dc0d7693449501ca70ce0b18"> 53</a></span>&#160;<span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83"> 62</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d"> 63</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">static</span> thread_local int32_t th_depth = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html"> 77</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6"> 83</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1"> 88</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>)<span class="keyword"> override</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a> = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; th_ProfileData[th_depth].name = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; th_ProfileData[th_depth].data = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; th_depth++;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b"> 115</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; th_depth--;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (th_depth &gt;= 0)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; assert(th_depth &gt;= 0);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94"> 149</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_platformEnabled = enabled;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">bool</span> m_platformEnabled;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;};</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a78b9d61f6da77c27fe4436997363dfb1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">Nv::Blast::ExtCustomProfiler::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:88</div></div>
+<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa1585207662452977fb8b6593e71f40c"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a></div><div class="ttdeci">NV_INLINE void platformZoneEnd()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:49</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">Nv::Blast::ExtCustomProfiler</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:77</div></div>
+<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa73cff190baa0fe10aa4b5d21dd5a7ef"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a></div><div class="ttdeci">NV_INLINE void platformZoneStart(const char *)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:48</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a326703192c1cef7196f271e6dd47bd94"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">Nv::Blast::ExtCustomProfiler::setPlatformEnabled</a></div><div class="ttdeci">void setPlatformEnabled(bool enabled)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:149</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a9e7434d8654794fc69d7f0b7afab22d6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">Nv::Blast::ExtCustomProfiler::ExtCustomProfiler</a></div><div class="ttdeci">ExtCustomProfiler()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:83</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_abe4743b5975ad80c6495167c7a47174b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">Nv::Blast::ExtCustomProfiler::zoneEnd</a></div><div class="ttdeci">virtual void zoneEnd() override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:115</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a></div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:44</div></div>
-<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_aecbb14649bf0e4003eb2e906649ebb8d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">Nv::Blast::ExtProfileData::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:62</div></div>
-<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html">Nv::Blast::ExtProfileData</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:59</div></div>
+<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_aecbb14649bf0e4003eb2e906649ebb8d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">Nv::Blast::ExtProfileData::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:63</div></div>
+<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html">Nv::Blast::ExtProfileData</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:60</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoring.h:34</div></div>
-<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_ae45c1aef4a10db9a1c2433b210d5de83"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">Nv::Blast::ExtProfileData::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:61</div></div>
+<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_ae45c1aef4a10db9a1c2433b210d5de83"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">Nv::Blast::ExtProfileData::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:62</div></div>
<div class="ttc" id="_nv_blast_profiler_8h_html"><div class="ttname"><a href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/api_docs/files/_nv_blast_ext_damage_shaders_8h_source.html b/docs/api_docs/files/_nv_blast_ext_damage_shaders_8h_source.html
index b1834d3..f21cb3c 100755
--- a/docs/api_docs/files/_nv_blast_ext_damage_shaders_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_damage_shaders_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_damage_shaders_8h_source
<div class="title">NvBlastExtDamageShaders.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_damage_shaders_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_debug_render_8h.html">NvBlastDebugRender.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Damage Accelerator </span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_blast_ext_damage_accelerator.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#a74a2c82f3414b4877de8475144a53dfc">release</a>() = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#adf9deedf3f72a68bfa0c95f42c6bba4f">fillDebugRender</a>(<span class="keywordtype">int</span> depth = -1, <span class="keywordtype">bool</span> segments = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aaba10f0cb7fda7438c600a9ea84c3a8f">NvBlastExtDamageAcceleratorCreate</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keywordtype">int</span> type);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// Damage Program</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_program_params.html">NvBlastExtProgramParams</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c"> 75</a></span>&#160; <a class="code" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c">NvBlastExtProgramParams</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* desc, <span class="keyword">const</span> <span class="keywordtype">void</span>* material_ = <span class="keyword">nullptr</span>, <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator_ = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : damageDesc(desc), material(material_), accelerator(accelerator_) {}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc"> 78</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc">damageDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12">material</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5"> 80</a></span>&#160; <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5">accelerator</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// Common Material </span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html"> 94</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5"> 96</a></span>&#160; <a class="code" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5">NvBlastExtMaterial</a>() : health(100.f), minDamageThreshold(0.0f), maxDamageThreshold(1.0f) {}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2"> 98</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2">health</a>; </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4"> 99</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4">minDamageThreshold</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b"> 100</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b">maxDamageThreshold</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d"> 112</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d">getNormalizedDamage</a>(<span class="keywordtype">float</span> damageInHealth)<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> damage = health &gt; 0.f ? damageInHealth / health : 1.0f;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> damage &gt; minDamageThreshold ? (damage &lt; maxDamageThreshold ? damage : maxDamageThreshold) : 0.f;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// Point Radial Damage</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html"> 127</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379"> 129</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379">damage</a>; </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#afd4c995f6402ebf1feaff268c7ca849b"> 130</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d"> 131</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d">minRadius</a>; </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc"> 132</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc">maxRadius</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a6349a0cf92522e18559d900ab65b14d1">NvBlastExtFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a879c11ce1b73b7b497288c8a2710c438">NvBlastExtFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a01ce708222741d4d1a3bdee94cdff422">NvBlastExtCutterGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a49ec2bf9cb78069aea33b323a3c46276">NvBlastExtCutterSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">// Capsule Radial Damage</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html"> 155</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html">NvBlastExtCapsuleRadialDamageDesc</a></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc"> 157</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc">damage</a>; </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a5209489ce81ac003f2aa1761ff76e304"> 158</a></span>&#160; <span class="keywordtype">float</span> position0[3]; </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#adc7ab153d9e1710cd8acca68d7005023"> 159</a></span>&#160; <span class="keywordtype">float</span> position1[3]; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5"> 160</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5">minRadius</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28"> 161</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28">maxRadius</a>; </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;};</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a2858337c4940ef330af46c87841ec8a1">NvBlastExtCapsuleFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a836ef5b0fd3eb3485af917599ab19e11">NvBlastExtCapsuleFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// Shear Damage</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html"> 185</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_shear_damage_desc.html">NvBlastExtShearDamageDesc</a></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2"> 187</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2">damage</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a257c42d51ea53fc4e14b6dad2968cf0c"> 189</a></span>&#160; <span class="keywordtype">float</span> normal[3]; </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#ae214121c1283b6e661db615a0512f0a2"> 190</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a"> 192</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a">minRadius</a>; </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946"> 193</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946">maxRadius</a>; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;};</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aa49711a370498c4da36bd9dac4d1bbd9">NvBlastExtShearGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a3103465d5c665418138ea5e93a62ac73">NvBlastExtShearSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// Triangle Intersection Damage</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html"> 214</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html">NvBlastExtTriangleIntersectionDamageDesc</a></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6"> 216</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6">damage</a>; </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06"> 217</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06">position0</a>; </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5"> 218</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5">position1</a>; </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1"> 219</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1">position2</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;};</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aa1a7f982c44ff2e230ba37caf03aaa0b">NvBlastExtTriangleIntersectionGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8cd81f47a4c823b3fa5ed0dee6a114bb">NvBlastExtTriangleIntersectionSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// Impact Spread</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html"> 247</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html">NvBlastExtImpactSpreadDamageDesc</a></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85"> 249</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85">damage</a>; </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#a4f6ab8c0f2d45d4608dcc45bfa4bbd5f"> 250</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9"> 252</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9">minRadius</a>; </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5"> 253</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5">maxRadius</a>; </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;};</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8f3d1da3bd2e0c19bd18b8840a4f531e">NvBlastExtImpactSpreadGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#ae6214e68108b781cdb160d787650dd2e">NvBlastExtImpactSpreadSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTDAMAGESHADERS_H</span></div><div class="ttc" id="_nv_blast_ext_damage_shaders_8h_html_ae6214e68108b781cdb160d787650dd2e"><div class="ttname"><a href="_nv_blast_ext_damage_shaders_8h.html#ae6214e68108b781cdb160d787650dd2e">NvBlastExtImpactSpreadSubgraphShader</a></div><div class="ttdeci">void NvBlastExtImpactSpreadSubgraphShader(NvBlastFractureBuffers *commandBuffers, const NvBlastSubgraphShaderActor *actor, const void *params)</div></div>
+<a href="_nv_blast_ext_damage_shaders_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_debug_render_8h.html">NvBlastDebugRender.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Damage Accelerator </span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_blast_ext_damage_accelerator.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#a74a2c82f3414b4877de8475144a53dfc">release</a>() = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#adf9deedf3f72a68bfa0c95f42c6bba4f">fillDebugRender</a>(<span class="keywordtype">int</span> depth = -1, <span class="keywordtype">bool</span> segments = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aaba10f0cb7fda7438c600a9ea84c3a8f">NvBlastExtDamageAcceleratorCreate</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keywordtype">int</span> type);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// Damage Program</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_program_params.html">NvBlastExtProgramParams</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c"> 75</a></span>&#160; <a class="code" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c">NvBlastExtProgramParams</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* desc, <span class="keyword">const</span> <span class="keywordtype">void</span>* material_ = <span class="keyword">nullptr</span>, <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator_ = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : damageDesc(desc), material(material_), accelerator(accelerator_) {}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc"> 78</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc">damageDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12">material</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5"> 80</a></span>&#160; <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5">accelerator</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// Common Material </span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html"> 94</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5"> 96</a></span>&#160; <a class="code" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5">NvBlastExtMaterial</a>() : health(100.f), minDamageThreshold(0.0f), maxDamageThreshold(1.0f) {}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2"> 98</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2">health</a>; </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4"> 99</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4">minDamageThreshold</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b"> 100</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b">maxDamageThreshold</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d"> 112</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d">getNormalizedDamage</a>(<span class="keywordtype">float</span> damageInHealth)<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> damage = health &gt; 0.f ? damageInHealth / health : 1.0f;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> damage &gt; minDamageThreshold ? (damage &lt; maxDamageThreshold ? damage : maxDamageThreshold) : 0.f;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// Point Radial Damage</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html"> 127</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379"> 129</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379">damage</a>; </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#afd4c995f6402ebf1feaff268c7ca849b"> 130</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d"> 131</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d">minRadius</a>; </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc"> 132</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc">maxRadius</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a6349a0cf92522e18559d900ab65b14d1">NvBlastExtFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a879c11ce1b73b7b497288c8a2710c438">NvBlastExtFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a01ce708222741d4d1a3bdee94cdff422">NvBlastExtCutterGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a49ec2bf9cb78069aea33b323a3c46276">NvBlastExtCutterSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">// Capsule Radial Damage</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html"> 155</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html">NvBlastExtCapsuleRadialDamageDesc</a></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc"> 157</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc">damage</a>; </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a5209489ce81ac003f2aa1761ff76e304"> 158</a></span>&#160; <span class="keywordtype">float</span> position0[3]; </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#adc7ab153d9e1710cd8acca68d7005023"> 159</a></span>&#160; <span class="keywordtype">float</span> position1[3]; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5"> 160</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5">minRadius</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28"> 161</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28">maxRadius</a>; </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;};</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a2858337c4940ef330af46c87841ec8a1">NvBlastExtCapsuleFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a836ef5b0fd3eb3485af917599ab19e11">NvBlastExtCapsuleFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// Shear Damage</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html"> 185</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_shear_damage_desc.html">NvBlastExtShearDamageDesc</a></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2"> 187</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2">damage</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a257c42d51ea53fc4e14b6dad2968cf0c"> 189</a></span>&#160; <span class="keywordtype">float</span> normal[3]; </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#ae214121c1283b6e661db615a0512f0a2"> 190</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a"> 192</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a">minRadius</a>; </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946"> 193</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946">maxRadius</a>; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;};</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aa49711a370498c4da36bd9dac4d1bbd9">NvBlastExtShearGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a3103465d5c665418138ea5e93a62ac73">NvBlastExtShearSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// Triangle Intersection Damage</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html"> 214</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html">NvBlastExtTriangleIntersectionDamageDesc</a></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6"> 216</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6">damage</a>; </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06"> 217</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06">position0</a>; </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5"> 218</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5">position1</a>; </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1"> 219</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1">position2</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;};</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aa1a7f982c44ff2e230ba37caf03aaa0b">NvBlastExtTriangleIntersectionGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8cd81f47a4c823b3fa5ed0dee6a114bb">NvBlastExtTriangleIntersectionSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// Impact Spread</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html"> 247</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html">NvBlastExtImpactSpreadDamageDesc</a></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85"> 249</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85">damage</a>; </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#a4f6ab8c0f2d45d4608dcc45bfa4bbd5f"> 250</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9"> 252</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9">minRadius</a>; </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5"> 253</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5">maxRadius</a>; </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;};</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8f3d1da3bd2e0c19bd18b8840a4f531e">NvBlastExtImpactSpreadGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#ae6214e68108b781cdb160d787650dd2e">NvBlastExtImpactSpreadSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTDAMAGESHADERS_H</span></div><div class="ttc" id="_nv_blast_ext_damage_shaders_8h_html_ae6214e68108b781cdb160d787650dd2e"><div class="ttname"><a href="_nv_blast_ext_damage_shaders_8h.html#ae6214e68108b781cdb160d787650dd2e">NvBlastExtImpactSpreadSubgraphShader</a></div><div class="ttdeci">void NvBlastExtImpactSpreadSubgraphShader(NvBlastFractureBuffers *commandBuffers, const NvBlastSubgraphShaderActor *actor, const void *params)</div></div>
<div class="ttc" id="struct_nv_blast_ext_program_params_html_aa445f80ac32f117dc11c1271e538c92c"><div class="ttname"><a href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c">NvBlastExtProgramParams::NvBlastExtProgramParams</a></div><div class="ttdeci">NvBlastExtProgramParams(const void *desc, const void *material_=nullptr, NvBlastExtDamageAccelerator *accelerator_=nullptr)</div><div class="ttdef"><b>Definition:</b> NvBlastExtDamageShaders.h:75</div></div>
<div class="ttc" id="_nv_blast_ext_damage_shaders_8h_html_a836ef5b0fd3eb3485af917599ab19e11"><div class="ttname"><a href="_nv_blast_ext_damage_shaders_8h.html#a836ef5b0fd3eb3485af917599ab19e11">NvBlastExtCapsuleFalloffSubgraphShader</a></div><div class="ttdeci">void NvBlastExtCapsuleFalloffSubgraphShader(NvBlastFractureBuffers *commandBuffers, const NvBlastSubgraphShaderActor *actor, const void *params)</div></div>
<div class="ttc" id="struct_nv_blast_graph_shader_actor_html"><div class="ttname"><a href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:491</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_exporter_8h_source.html b/docs/api_docs/files/_nv_blast_ext_exporter_8h_source.html
index bf9ee57..6f4d885 100755
--- a/docs/api_docs/files/_nv_blast_ext_exporter_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_exporter_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_8h_source.html'
<div class="title">NvBlastExtExporter.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html"> 44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c"> 46</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c">name</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4"> 47</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4">diffuse_tex</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5">asset</a>; <span class="comment">//Blast asset</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34"> 54</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34">positionsCount</a>; <span class="comment">//Number of positions</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b">normalsCount</a>; <span class="comment">//Number of normals</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a">uvsCount</a>; <span class="comment">//Number of textures uv</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563"> 60</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563">positions</a>; <span class="comment">//Array of positions</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8"> 62</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8">normals</a>; <span class="comment">// Array of normals</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a"> 64</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a">uvs</a>; <span class="comment">// Array of textures uv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc"> 66</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc">meshCount</a>; <span class="comment">//Number of meshes (chunks)</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5">submeshCount</a>; <span class="comment">//Number of submeshes</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d">submeshMats</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3"> 78</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3">submeshOffsets</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621"> 80</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621">posIndex</a>; <span class="comment">//Array of position indices</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0"> 82</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0">normIndex</a>; <span class="comment">//Array of normals indices</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975"> 84</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975">texIndex</a>; <span class="comment">//Array of texture indices</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3"> 92</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">hullsOffsets</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373"> 94</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373">hulls</a>; <span class="comment">//Array of pointers to hull for all meshes</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> Load from the specified file path</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> loadFromFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> uint32_t getVerticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> uint32_t getIndicesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getPositionArray() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getNormalsArray() = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* getUvArray() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t* getMaterialIds() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> int32_t* getSmoothingGroups() = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getMaterialName(int32_t <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> int32_t getMaterialCount() = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexArray() = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isCollisionLoaded() = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t getCollision(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>**&amp; hulls) = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;};</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html"> 187</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">IFbxFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneInfluences(uint32_t*&amp; out) = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneCount() = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;};</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html"> 208</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> saveToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorIndex(int32_t index) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;};</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">Nv::Blast::IMeshFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a4bf77a02044f3bef0399bfc47f650a8d">NvBlastExtExporterCreateObjFileReader</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">Nv::Blast::IFbxFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a4f54418e6a96cd79a707cedf9e9e51d1">NvBlastExtExporterCreateFbxFileReader</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a890017dceafc8196df1900780e760e24">NvBlastExtExporterCreateObjFileWriter</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#ad05e784043601c6705cd2bdd95d4bc76">NvBlastExtExporterCreateFbxFileWriter</a>(<span class="keywordtype">bool</span> outputFBXAscii = <span class="keyword">false</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_exporter_mesh_data_html_a0ce1720fca4452f6fc3df794ca659ec3"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">Nv::Blast::ExporterMeshData::hullsOffsets</a></div><div class="ttdeci">uint32_t * hullsOffsets</div><div class="ttdef"><b>Definition:</b> NvBlastExtExporter.h:92</div></div>
+<a href="_nv_blast_ext_exporter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html"> 44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c"> 46</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c">name</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4"> 47</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4">diffuse_tex</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5">asset</a>; <span class="comment">//Blast asset</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34"> 54</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34">positionsCount</a>; <span class="comment">//Number of positions</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b">normalsCount</a>; <span class="comment">//Number of normals</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a">uvsCount</a>; <span class="comment">//Number of textures uv</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563"> 60</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563">positions</a>; <span class="comment">//Array of positions</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8"> 62</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8">normals</a>; <span class="comment">// Array of normals</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a"> 64</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a">uvs</a>; <span class="comment">// Array of textures uv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc"> 66</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc">meshCount</a>; <span class="comment">//Number of meshes (chunks)</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5">submeshCount</a>; <span class="comment">//Number of submeshes</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d">submeshMats</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3"> 78</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3">submeshOffsets</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621"> 80</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621">posIndex</a>; <span class="comment">//Array of position indices</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0"> 82</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0">normIndex</a>; <span class="comment">//Array of normals indices</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975"> 84</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975">texIndex</a>; <span class="comment">//Array of texture indices</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3"> 92</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">hullsOffsets</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373"> 94</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373">hulls</a>; <span class="comment">//Array of pointers to hull for all meshes</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> Load from the specified file path</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> loadFromFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> uint32_t getVerticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> uint32_t getIndicesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getPositionArray() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getNormalsArray() = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* getUvArray() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t* getMaterialIds() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> int32_t* getSmoothingGroups() = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getMaterialName(int32_t <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> int32_t getMaterialCount() = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexArray() = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isCollisionLoaded() = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t getCollision(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>**&amp; hulls) = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;};</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html"> 187</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">IFbxFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneInfluences(uint32_t*&amp; out) = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneCount() = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;};</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html"> 208</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> saveToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorIndex(int32_t index) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;};</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">Nv::Blast::IMeshFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a4bf77a02044f3bef0399bfc47f650a8d">NvBlastExtExporterCreateObjFileReader</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">Nv::Blast::IFbxFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a4f54418e6a96cd79a707cedf9e9e51d1">NvBlastExtExporterCreateFbxFileReader</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a890017dceafc8196df1900780e760e24">NvBlastExtExporterCreateObjFileWriter</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#ad05e784043601c6705cd2bdd95d4bc76">NvBlastExtExporterCreateFbxFileWriter</a>(<span class="keywordtype">bool</span> outputFBXAscii = <span class="keyword">false</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_exporter_mesh_data_html_a0ce1720fca4452f6fc3df794ca659ec3"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">Nv::Blast::ExporterMeshData::hullsOffsets</a></div><div class="ttdeci">uint32_t * hullsOffsets</div><div class="ttdef"><b>Definition:</b> NvBlastExtExporter.h:92</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_exporter_8h_html_a890017dceafc8196df1900780e760e24"><div class="ttname"><a href="_nv_blast_ext_exporter_8h.html#a890017dceafc8196df1900780e760e24">NvBlastExtExporterCreateObjFileWriter</a></div><div class="ttdeci">Nv::Blast::IMeshFileWriter * NvBlastExtExporterCreateObjFileWriter()</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_exporter_mesh_data_html_a2fdc2eb1919de073682ef56696ed987b"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b">Nv::Blast::ExporterMeshData::normalsCount</a></div><div class="ttdeci">uint32_t normalsCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtExporter.h:56</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html b/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html
index c4ebd20..f128cd8 100755
--- a/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_json_collision_
<div class="title">NvBlastExtExporterJsonCollision.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_json_collision_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">IJsonCollisionExporter</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#af744ddab2561e7c141875ccd3b0b7e54">release</a>() = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">writeCollision</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path, uint32_t chunkCount, <span class="keyword">const</span> uint32_t* hullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <span class="keyword">const</span> * hulls) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">Nv::Blast::IJsonCollisionExporter</a>* <a class="code" href="_nv_blast_ext_exporter_json_collision_8h.html#a78a91f4ba679ece96110ef4dad60d949">NvBlastExtExporterCreateJsonCollisionExporter</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_i_json_collision_exporter_html_a036a4974af69302ea442baed800c3bbe"><div class="ttname"><a href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">Nv::Blast::IJsonCollisionExporter::writeCollision</a></div><div class="ttdeci">virtual bool writeCollision(const char *path, uint32_t chunkCount, const uint32_t *hullOffsets, const CollisionHull *const *hulls)=0</div></div>
+<a href="_nv_blast_ext_exporter_json_collision_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">IJsonCollisionExporter</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#af744ddab2561e7c141875ccd3b0b7e54">release</a>() = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">writeCollision</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path, uint32_t chunkCount, <span class="keyword">const</span> uint32_t* hullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <span class="keyword">const</span> * hulls) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">Nv::Blast::IJsonCollisionExporter</a>* <a class="code" href="_nv_blast_ext_exporter_json_collision_8h.html#a78a91f4ba679ece96110ef4dad60d949">NvBlastExtExporterCreateJsonCollisionExporter</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_i_json_collision_exporter_html_a036a4974af69302ea442baed800c3bbe"><div class="ttname"><a href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">Nv::Blast::IJsonCollisionExporter::writeCollision</a></div><div class="ttdeci">virtual bool writeCollision(const char *path, uint32_t chunkCount, const uint32_t *hullOffsets, const CollisionHull *const *hulls)=0</div></div>
<div class="ttc" id="_nv_blast_ext_exporter_json_collision_8h_html_a78a91f4ba679ece96110ef4dad60d949"><div class="ttname"><a href="_nv_blast_ext_exporter_json_collision_8h.html#a78a91f4ba679ece96110ef4dad60d949">NvBlastExtExporterCreateJsonCollisionExporter</a></div><div class="ttdeci">Nv::Blast::IJsonCollisionExporter * NvBlastExtExporterCreateJsonCollisionExporter()</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_i_json_collision_exporter_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">Nv::Blast::IJsonCollisionExporter</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterJsonCollision.h:44</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html b/docs/api_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html
index 1597142..334b105 100755
--- a/docs/api_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_impact_damage_manager_8h
<div class="title">NvBlastExtImpactDamageManager.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_impact_damage_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">struct </span>PxContactPair;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>PxContactPairHeader;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a"> 56</a></span>&#160;<span class="keyword">typedef</span> bool(*<a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a>)(<span class="keywordtype">void</span>* data, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor, physx::PxShape* shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804"> 64</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804">isSelfCollissionEnabled</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b">shearDamage</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346"> 66</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346">hardness</a>; </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f"> 67</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f">damageRadiusMax</a>; </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925"> 68</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925">damageThresholdMin</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee"> 69</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee">damageThresholdMax</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb"> 70</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb">damageFalloffRadiusFactor</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334"> 71</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334">damageFunction</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367"> 72</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367">damageFunctionData</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d">ExtImpactSettings</a>() :</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; isSelfCollissionEnabled(false),</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; shearDamage(true),</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; hardness(10.0f),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; damageRadiusMax(2.0f),</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; damageThresholdMin(0.1f), <span class="comment">// to filter small damage events</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; damageThresholdMax(1.0f),</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; damageFalloffRadiusFactor(2.0f),</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; damageFunction(nullptr),</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; damageFunctionData(nullptr)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html"> 96</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* pxManager, <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> onContact(<span class="keyword">const</span> physx::PxContactPairHeader&amp; pairHeader, <span class="keyword">const</span> physx::PxContactPair* pairs, uint32_t nbPairs) = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyDamage() = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> physx::PxFilterFlags FilterShader(</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; physx::PxFilterObjectAttributes attributes0,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; physx::PxFilterData filterData0,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; physx::PxFilterObjectAttributes attributes1,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; physx::PxFilterData filterData1,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; physx::PxPairFlags&amp; pairFlags,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* constantBlock,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint32_t constantBlockSize);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_impact_damage_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">struct </span>PxContactPair;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>PxContactPairHeader;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a"> 56</a></span>&#160;<span class="keyword">typedef</span> bool(*<a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a>)(<span class="keywordtype">void</span>* data, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor, physx::PxShape* shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804"> 64</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804">isSelfCollissionEnabled</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b">shearDamage</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346"> 66</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346">hardness</a>; </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f"> 67</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f">damageRadiusMax</a>; </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925"> 68</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925">damageThresholdMin</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee"> 69</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee">damageThresholdMax</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb"> 70</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb">damageFalloffRadiusFactor</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334"> 71</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334">damageFunction</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367"> 72</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367">damageFunctionData</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d">ExtImpactSettings</a>() :</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; isSelfCollissionEnabled(false),</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; shearDamage(true),</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; hardness(10.0f),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; damageRadiusMax(2.0f),</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; damageThresholdMin(0.1f), <span class="comment">// to filter small damage events</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; damageThresholdMax(1.0f),</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; damageFalloffRadiusFactor(2.0f),</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; damageFunction(nullptr),</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; damageFunctionData(nullptr)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html"> 96</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* pxManager, <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> onContact(<span class="keyword">const</span> physx::PxContactPairHeader&amp; pairHeader, <span class="keyword">const</span> physx::PxContactPair* pairs, uint32_t nbPairs) = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyDamage() = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> physx::PxFilterFlags FilterShader(</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; physx::PxFilterObjectAttributes attributes0,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; physx::PxFilterData filterData0,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; physx::PxFilterObjectAttributes attributes1,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; physx::PxFilterData filterData1,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; physx::PxPairFlags&amp; pairFlags,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* constantBlock,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint32_t constantBlockSize);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_ad18fa486067c588cf4e38f50d604f46a"><div class="ttname"><a href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">Nv::Blast::ExtImpactDamageFunction</a></div><div class="ttdeci">bool(* ExtImpactDamageFunction)(void *data, ExtPxActor *actor, physx::PxShape *shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce)</div><div class="ttdef"><b>Definition:</b> NvBlastExtImpactDamageManager.h:56</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_impact_settings_html_adf5d37a5ceaca7c71c71325f434596bb"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb">Nv::Blast::ExtImpactSettings::damageFalloffRadiusFactor</a></div><div class="ttdeci">float damageFalloffRadiusFactor</div><div class="ttdoc">damage attenuation radius factor. Given a radius R for full damage, for [R, R * damageFalloffRadiusFa...</div><div class="ttdef"><b>Definition:</b> NvBlastExtImpactDamageManager.h:70</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_impact_settings_html_a615c8e4e5f48e0e2bfb1a9738f8b227f"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f">Nv::Blast::ExtImpactSettings::damageRadiusMax</a></div><div class="ttdeci">float damageRadiusMax</div><div class="ttdoc">the maximum radius in which full damage is applied. </div><div class="ttdef"><b>Definition:</b> NvBlastExtImpactDamageManager.h:67</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h_source.html b/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h_source.html
index b45f4b9..e541049 100755
--- a/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_ll_serialization_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_ll_serialization_8h_sour
<div class="title">NvBlastExtLlSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_ll_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html">LlObjectTypeID</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4">Enum</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4a982a9d27b7909cf9d7e3ce490cbb5d4a"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4a982a9d27b7909cf9d7e3ce490cbb5d4a">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf">Family</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;A&#39;</span>),</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a2485243df6083c79489c6289ea8491bf">NvBlastExtLlSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a51eaff0f60a0dd3f1ee29618549ae635">NvBlastExtSerializationSerializeAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#ad4d8b950f06b6301279e6102a6d568d6">NvBlastExtSerializationSerializeFamilyIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family);</div><div class="ttc" id="_nv_blast_ext_ll_serialization_8h_html_a51eaff0f60a0dd3f1ee29618549ae635"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8h.html#a51eaff0f60a0dd3f1ee29618549ae635">NvBlastExtSerializationSerializeAssetIntoBuffer</a></div><div class="ttdeci">uint64_t NvBlastExtSerializationSerializeAssetIntoBuffer(void *&amp;buffer, Nv::Blast::ExtSerialization &amp;serialization, const NvBlastAsset *asset)</div></div>
+<a href="_nv_blast_ext_ll_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html">LlObjectTypeID</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4">Enum</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4a982a9d27b7909cf9d7e3ce490cbb5d4a"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4a982a9d27b7909cf9d7e3ce490cbb5d4a">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf">Family</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;A&#39;</span>),</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a2485243df6083c79489c6289ea8491bf">NvBlastExtLlSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a51eaff0f60a0dd3f1ee29618549ae635">NvBlastExtSerializationSerializeAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#ad4d8b950f06b6301279e6102a6d568d6">NvBlastExtSerializationSerializeFamilyIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family);</div><div class="ttc" id="_nv_blast_ext_ll_serialization_8h_html_a51eaff0f60a0dd3f1ee29618549ae635"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8h.html#a51eaff0f60a0dd3f1ee29618549ae635">NvBlastExtSerializationSerializeAssetIntoBuffer</a></div><div class="ttdeci">uint64_t NvBlastExtSerializationSerializeAssetIntoBuffer(void *&amp;buffer, Nv::Blast::ExtSerialization &amp;serialization, const NvBlastAsset *asset)</div></div>
<div class="ttc" id="_nv_blast_ext_ll_serialization_8h_html_a2485243df6083c79489c6289ea8491bf"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8h.html#a2485243df6083c79489c6289ea8491bf">NvBlastExtLlSerializerLoadSet</a></div><div class="ttdeci">size_t NvBlastExtLlSerializerLoadSet(Nv::Blast::ExtSerialization &amp;serialization)</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html_ae5c980f1b9848025a2fefa05a9d3bce1"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a></div><div class="ttdeci">#define NVBLAST_API</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessor.h:37</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_8h_source.html
index 49be59e..ad591d0 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_8h_source.html','');}
<div class="title">NvBlastExtPx.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPX_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPX_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPX_H</span></div><div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
+<a href="_nv_blast_ext_px_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPX_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPX_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPX_H</span></div><div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_manager_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_family_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_actor_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_actor_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_actor_8h_source.html
index d55592c..f931c67 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_actor_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_actor_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_actor_8h_source.html'
<div class="title">NvBlastExtPxActor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> uint32_t* getChunkIndices() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> physx::PxRigidDynamic&amp; getPhysXActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; getTkActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; getFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;};</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXACTOR_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_px_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> uint32_t* getChunkIndices() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> physx::PxRigidDynamic&amp; getPhysXActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; getTkActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; getFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;};</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXACTOR_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_actor.html">Nv::Blast::ExtPxActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxActor.h:57</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_asset_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_asset_8h_source.html
index c5fdbd6..ab97708 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_asset_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_asset_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_asset_8h_source.html'
<div class="title">NvBlastExtPxAsset.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html"> 64</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html"> 71</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5"> 73</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5">transform</a>; </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411"> 74</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411">geometry</a>; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html"> 82</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb">subchunks</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46"> 85</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46">subchunkCount</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1"> 86</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1">isStatic</a>; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc"> 89</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc">pxChunks</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443"> 100</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443">transform</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f"> 101</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f">geometry</a>; </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html"> 110</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8"> 112</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8">firstSubchunkIndex</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2"> 113</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2">subchunkCount</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981">isStatic</a>; </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html"> 123</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a>&amp; desc, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSubchunks, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> Factory method for deserialization</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> Doesn&#39;t specify chunks or subchunks as they&#39;ll be fed in during deserialization to avoid copying stuff around.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Create a new ExtPxAsset.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> \param[in] asset TkAsset from which ExtPxAsset will be created</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> \param[in] chunks Array of physics chunks descriptors</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> \param[in] chunkCount Size of chunks descriptors array</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> \return the new ExtPxAsset if successful, NULL otherwise.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* chunks, uint32_t chunkCount);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>&amp; getTkAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">virtual</span> uint32_t getSubchunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* getSubchunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUniformHealth(<span class="keywordtype">bool</span> enabled) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAccelerator(<a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* getAccelerator() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9"> 245</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9">userData</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;};</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXASSET_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_px_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html"> 64</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html"> 71</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5"> 73</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5">transform</a>; </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411"> 74</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411">geometry</a>; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html"> 82</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb">subchunks</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46"> 85</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46">subchunkCount</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1"> 86</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1">isStatic</a>; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc"> 89</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc">pxChunks</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443"> 100</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443">transform</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f"> 101</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f">geometry</a>; </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html"> 110</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8"> 112</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8">firstSubchunkIndex</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2"> 113</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2">subchunkCount</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981">isStatic</a>; </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html"> 123</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a>&amp; desc, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSubchunks, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> Factory method for deserialization</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> Doesn&#39;t specify chunks or subchunks as they&#39;ll be fed in during deserialization to avoid copying stuff around.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Create a new ExtPxAsset.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> \param[in] asset TkAsset from which ExtPxAsset will be created</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> \param[in] chunks Array of physics chunks descriptors</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> \param[in] chunkCount Size of chunks descriptors array</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> \return the new ExtPxAsset if successful, NULL otherwise.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* chunks, uint32_t chunkCount);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>&amp; getTkAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">virtual</span> uint32_t getSubchunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* getSubchunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUniformHealth(<span class="keywordtype">bool</span> enabled) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAccelerator(<a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* getAccelerator() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9"> 245</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9">userData</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;};</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXASSET_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_chunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:110</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_asset_desc_html_a39e1228a08020f762b83e81cc4f615dc"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc">Nv::Blast::ExtPxAssetDesc::pxChunks</a></div><div class="ttdeci">ChunkDesc * pxChunks</div><div class="ttdoc">array of chunks in asset, should be of size chunkCount ( </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:89</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html
index e9f8415..6764b9e 100644
--- a/docs/api_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_collision_builder_8h_
<div class="title">NvBlastExtPxCollisionBuilder.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_collision_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span>PxConvexMesh;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">struct </span>ExtPxChunk;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span>ExtPxSubchunk;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> physx::PxConvexMesh* buildConvexMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull) = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildPhysicsChunks(uint32_t chunkCount, uint32_t* hullOffsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* physicsChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* physicsSubchunks) = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_px_collision_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span>PxConvexMesh;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">struct </span>ExtPxChunk;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span>ExtPxSubchunk;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> physx::PxConvexMesh* buildConvexMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull) = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildPhysicsChunks(uint32_t chunkCount, uint32_t* hullOffsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* physicsChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* physicsSubchunks) = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_chunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:110</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_subchunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">Nv::Blast::ExtPxSubchunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:98</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_family_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_family_8h_source.html
index dbd9aee..7159fb2 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_family_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_family_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_family_8h_source.html
<div class="title">NvBlastExtPxFamily.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>PxMaterial;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>PxScene;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11"> 68</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11">flags</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9"> 69</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9">simulationFilterData</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c"> 70</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c">queryFilterData</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88"> 71</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88">contactOffset</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351"> 72</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351">restOffset</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef"> 83</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef">flags</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html"> 92</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab"> 94</a></span>&#160; physx::PxScene* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">scene</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5"> 95</a></span>&#160; physx::PxMaterial* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5">material</a>; </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05"> 96</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05">density</a>; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> spawn(<span class="keyword">const</span> physx::PxTransform&amp; pose, <span class="keyword">const</span> physx::PxVec3&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> despawn() = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; getTkFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> physx::PxShape* <span class="keyword">const</span>* getSubchunkShapes() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; getPxAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(physx::PxMaterial&amp; material) = 0;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> Set ExtPxPxShapeDesc to be used on all newly created PxShapes.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> NOTE: Using it will override marking LEAF_CHUNK in simulationFilterData.word3 now.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> \param[in] pxShapeDesc The PxShape desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxShapeDescTemplate(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* pxShapeDesc) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* getPxShapeDescTemplate() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Set ExtPxPxActorDesc to be used on all newly created PxActors.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> \param[in] pxActorDesc The PxActor desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxActorDesc(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* pxActorDesc) = 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* getPxActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* getMaterial() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* material) = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> postSplitUpdate() = 0;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b"> 248</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b">userData</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;};</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_spawn_settings_html_a3d977bbbeb2cca054bc881f366772dab"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">Nv::Blast::ExtPxSpawnSettings::scene</a></div><div class="ttdeci">physx::PxScene * scene</div><div class="ttdoc">PxScene for PxActors to be spawned. </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:94</div></div>
+<a href="_nv_blast_ext_px_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>PxMaterial;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>PxScene;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11"> 68</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11">flags</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9"> 69</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9">simulationFilterData</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c"> 70</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c">queryFilterData</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88"> 71</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88">contactOffset</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351"> 72</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351">restOffset</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef"> 83</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef">flags</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html"> 92</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab"> 94</a></span>&#160; physx::PxScene* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">scene</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5"> 95</a></span>&#160; physx::PxMaterial* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5">material</a>; </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05"> 96</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05">density</a>; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> spawn(<span class="keyword">const</span> physx::PxTransform&amp; pose, <span class="keyword">const</span> physx::PxVec3&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> despawn() = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; getTkFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> physx::PxShape* <span class="keyword">const</span>* getSubchunkShapes() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; getPxAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(physx::PxMaterial&amp; material) = 0;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> Set ExtPxPxShapeDesc to be used on all newly created PxShapes.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> NOTE: Using it will override marking LEAF_CHUNK in simulationFilterData.word3 now.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> \param[in] pxShapeDesc The PxShape desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxShapeDescTemplate(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* pxShapeDesc) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* getPxShapeDescTemplate() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Set ExtPxPxActorDesc to be used on all newly created PxActors.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> \param[in] pxActorDesc The PxActor desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxActorDesc(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* pxActorDesc) = 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* getPxActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* getMaterial() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* material) = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> postSplitUpdate() = 0;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b"> 248</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b">userData</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;};</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_spawn_settings_html_a3d977bbbeb2cca054bc881f366772dab"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">Nv::Blast::ExtPxSpawnSettings::scene</a></div><div class="ttdeci">physx::PxScene * scene</div><div class="ttdoc">PxScene for PxActors to be spawned. </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:94</div></div>
<div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_spawn_settings_html_acb293066dc9829670992e5e101a7db05"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05">Nv::Blast::ExtPxSpawnSettings::density</a></div><div class="ttdeci">float density</div><div class="ttdoc">default density for PhysX </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:96</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_listener_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_listener_8h_source.html
index f21071e..376af31 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_listener_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_listener_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_listener_8h_source.ht
<div class="title">NvBlastExtPxListener.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_listener_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_listener.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a974e258bbfbd9cf333cc5b883b968ceb">onActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a2ffefb96cbdea998a8761a8017daf214">onActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_listener_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_listener.html">Nv::Blast::ExtPxListener</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxListener.h:48</div></div>
+<a href="_nv_blast_ext_px_listener_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_listener.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a974e258bbfbd9cf333cc5b883b968ceb">onActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a2ffefb96cbdea998a8761a8017daf214">onActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_listener_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_listener.html">Nv::Blast::ExtPxListener</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxListener.h:48</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_actor.html">Nv::Blast::ExtPxActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxActor.h:57</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_listener_html_a2ffefb96cbdea998a8761a8017daf214"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_listener.html#a2ffefb96cbdea998a8761a8017daf214">Nv::Blast::ExtPxListener::onActorDestroyed</a></div><div class="ttdeci">virtual void onActorDestroyed(ExtPxFamily &amp;family, ExtPxActor &amp;actor)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_family.html">Nv::Blast::ExtPxFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:105</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_manager_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_manager_8h_source.html
index 19ba68b..22d62b6 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_manager_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_manager_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_manager_8h_source.htm
<div class="title">NvBlastExtPxManager.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>PxJoint;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>ExtPxCollisionBuilder;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html"> 75</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205"> 77</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205">pxAsset</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4">actorDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669"> 89</a></span>&#160;<span class="keyword">typedef</span> physx::PxJoint* (*ExtPxCreateJointFunction)(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor0, <span class="keyword">const</span> physx::PxTransform&amp; localFrame0,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor1, <span class="keyword">const</span> physx::PxTransform&amp; localFrame1,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html"> 99</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* create(physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> useUserData = <span class="keyword">true</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* createCollisionBuilder(physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d"> 135</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d">FilterDataAttributes</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951da6e3c7382337952ba42cee04a0a36a21d"> 137</a></span>&#160; LEAF_CHUNK = 1,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* createFamily(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> createJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCreateJointFunction(<a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilyCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilies(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* getFamilyFromTkFamily(<a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* getActorFromPhysXActor(<span class="keyword">const</span> physx::PxRigidDynamic&amp; pxActor) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> physx::PxPhysics&amp; getPhysics() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; getFramework() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPxUserDataUsed() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setActorCountLimit(uint32_t limit) = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCountLimit() = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> uint32_t getPxActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;};</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_px_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>PxJoint;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>ExtPxCollisionBuilder;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html"> 75</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205"> 77</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205">pxAsset</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4">actorDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669"> 89</a></span>&#160;<span class="keyword">typedef</span> physx::PxJoint* (*ExtPxCreateJointFunction)(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor0, <span class="keyword">const</span> physx::PxTransform&amp; localFrame0,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor1, <span class="keyword">const</span> physx::PxTransform&amp; localFrame1,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html"> 99</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* create(physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> useUserData = <span class="keyword">true</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* createCollisionBuilder(physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d"> 135</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d">FilterDataAttributes</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951da6e3c7382337952ba42cee04a0a36a21d"> 137</a></span>&#160; LEAF_CHUNK = 1,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* createFamily(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> createJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCreateJointFunction(<a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilyCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilies(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* getFamilyFromTkFamily(<a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* getActorFromPhysXActor(<span class="keyword">const</span> physx::PxRigidDynamic&amp; pxActor) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> physx::PxPhysics&amp; getPhysics() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; getFramework() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPxUserDataUsed() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setActorCountLimit(uint32_t limit) = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCountLimit() = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> uint32_t getPxActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;};</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_family_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">Nv::Blast::ExtPxFamilyDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxManager.h:75</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_serialization_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_serialization_8h_source.html
index b7ec798..9d1540a 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_serialization_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_serialization_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_serialization_8h_sour
<div class="title">NvBlastExtPxSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html">ExtPxObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417ba3aa2dc54683584ca4747dbbe64eedfb1"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417ba3aa2dc54683584ca4747dbbe64eedfb1">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a8c896467357e07261de122d4006c9bef">NvBlastExtPxSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a023b377cc39c27e2ae2fc3237a0aec1e">NvBlastExtSerializationSerializeExtPxAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a>* asset);</div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_px_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html">ExtPxObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417ba3aa2dc54683584ca4747dbbe64eedfb1"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417ba3aa2dc54683584ca4747dbbe64eedfb1">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a8c896467357e07261de122d4006c9bef">NvBlastExtPxSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a023b377cc39c27e2ae2fc3237a0aec1e">NvBlastExtSerializationSerializeExtPxAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a>* asset);</div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:123</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d_html_a416ed61e2f3847ceaab50ddd9512417b"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b">Nv::Blast::ExtPxObjectTypeID::Enum</a></div><div class="ttdeci">Enum</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxSerialization.h:53</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html
index c28eda5..386ffd4 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_stress_solver_8h_sour
<div class="title">NvBlastExtPxStressSolver.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_stress_solver_8h.html">NvBlastExtStressSolver.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;common/PxRenderBuffer.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// forward declarations</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html"> 53</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>&amp; getSolver() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keywordtype">bool</span> doDamage = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">Nv::Blast::ExtStressSolverSettings</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:56</div></div>
+<a href="_nv_blast_ext_px_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_stress_solver_8h.html">NvBlastExtStressSolver.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;common/PxRenderBuffer.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// forward declarations</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html"> 53</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>&amp; getSolver() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keywordtype">bool</span> doDamage = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">Nv::Blast::ExtStressSolverSettings</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:56</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_stress_solver_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">Nv::Blast::ExtPxStressSolver</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxStressSolver.h:53</div></div>
<div class="ttc" id="_nv_blast_ext_stress_solver_8h_html"><div class="ttname"><a href="_nv_blast_ext_stress_solver_8h.html">NvBlastExtStressSolver.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_stress_solver_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_stress_solver.html">Nv::Blast::ExtStressSolver</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:104</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_px_task_8h_source.html b/docs/api_docs/files/_nv_blast_ext_px_task_8h_source.html
index 10b29f5..0e1e1ca 100755
--- a/docs/api_docs/files/_nv_blast_ext_px_task_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_px_task_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_task_8h_source.html',
<div class="title">NvBlastExtPxTask.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_task_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxTaskManager;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html"> 55</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99"> 58</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99">~ExtGroupTaskManager</a>() {}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a>* create(physx::PxTaskManager&amp;, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setGroup(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>*) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> uint32_t process(uint32_t workerCount = 0) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> wait(<span class="keywordtype">bool</span> block = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTPXTASK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_ext_px_task_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxTaskManager;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html"> 55</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99"> 58</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99">~ExtGroupTaskManager</a>() {}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a>* create(physx::PxTaskManager&amp;, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setGroup(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>*) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> uint32_t process(uint32_t workerCount = 0) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> wait(<span class="keywordtype">bool</span> block = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTPXTASK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_group_task_manager_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">Nv::Blast::ExtGroupTaskManager</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxTask.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_group_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_group.html">Nv::Blast::TkGroup</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:101</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_r_t_8h_source.html b/docs/api_docs/files/_nv_blast_ext_r_t_8h_source.html
index 5d2b8b8..4792a6d 100644
--- a/docs/api_docs/files/_nv_blast_ext_r_t_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_r_t_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_r_t_8h_source.html','');
<div class="title">NvBlastExtRT.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_r_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTRT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTRT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;cinttypes&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//#define USE_MERGED_MESH</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#ab61e2620c8f2917beffb61e2d42cbc88"> 40</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_VERTICES 262144</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#aa56085b830bbfc750734bc2fec8c0070"> 41</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_EDGES_PER_CHUNK 16384</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#a9cce5b0c1e6c644cdf4d10ca630fb07d"> 42</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_CHUNKS 256</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>Vertex;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">class </span>VertexWelding;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">struct </span>DamagePattern;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html"> 54</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f">parentEdge</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f"> 59</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f">status</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1">pIdx</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba"> 62</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> parentFacet &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html"> 68</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a"> 70</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5"> 71</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d"> 72</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f"> 73</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a> = -1;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134">getInversed</a>()</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> ret;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a> = end;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a> = start;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f">adjacentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html"> 86</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">//set edges, vertices and ffResult counters to 0</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetEdges() = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> copyVerticesAndResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* other) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> uint32_t edgesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> uint32_t verticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t ffResultCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">//Thread safe add, return index in buffer</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp;) = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> uint32_t addVertex(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp;) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> uint32_t addFfResult(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp;) = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//Thread safe, increment counter and return reference to last element</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp; getNewEdge() = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; getNewVertex() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; getNewFfResult() = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">//User allocated buffers should have size more than return values of above function </span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#af16c26c7418b7887e042f4cdb0d3e408"> 111</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* edges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a9b53f2d6ac89e52b307c4cc7ed891690"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a74ca8e839974a75618e2e23e63922f84"> 113</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>* ffResult = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracturer.html"> 120</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_generator.html"> 126</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html"> 132</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">FractureDesc</a></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a17f1aec6d7cae1b05535897faedd0239"> 134</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a>* fr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a8afba8dc673e5104eb22daae072edc52"> 135</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* model = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#aaf073bd947a0518fe6743b32552d913d"> 136</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* cell = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#afc2f45708d3f78e519e108f197823001"> 137</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* modelAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a0727c80c4fc8719fe848aaaccb20f278"> 138</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* cellAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a3b6c165b5a5656f451c3e1495415911b"> 139</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a6fddc4ebaebd6157eb9a7c869a2ac815"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a"> 141</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a">chunkId</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html"> 144</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8"> 146</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8">materialIndex</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8"> 147</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8">smoothingGroup</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html"> 150</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">MeshDesc</a></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a13aab51982ee023ece211a00492d3317"> 152</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a>* tr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a62b3efe6edcc0e9709bf87630b327fc2"> 153</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* bEdges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ae0d86d4604dafe840dff592dc64df24c"> 154</a></span>&#160; uint32_t edesCount = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ab5495afac84f3f3ab81fc67915e6bde8"> 155</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* inVertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#af324b167e69af8df2eaeb40362e2a361"> 156</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA = <span class="keyword">nullptr</span>; <span class="comment">// used to gather additional data from source mesh, for example material ID </span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a9447e8d8b3c43992fe40dee1cbd9be81"> 157</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t.html"> 160</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html"> 164</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html">Stage</a></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">enum</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4af28c3ba8009483e0f4f2de1f28d0d400"> 168</a></span>&#160; FACET_FACET_TEST = 1,</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a1591fbb59b0ef6d1746ea47560ccb580"> 169</a></span>&#160; RETAIN_FROM_FRACTURED_MESH = 2,</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a289e75c83bc97396f0ed62d78162df1d"> 170</a></span>&#160; RETAIN_FROM_PATTERN = 4,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923"> 172</a></span>&#160; ALL = 0xFFFFFFFF</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; };</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processMesh(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> uint32_t getResultChunkCount() = 0;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* getVertexBuffer() = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexBuffer() = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> uint32_t* getVertexOffset() = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexOffset() = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* getPerTriangleData() = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> dumpChunksToObj(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be"> 187</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be">PatternFacetType</a> { <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea0d1d9155e8519d41f5bf8e02e94d3d1c">GOOD_FACET</a> = 0, <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea7a5a857c21346bed3fbf7d94a0c3d4e7">INFINITE_FACET</a> = 0xffffff };</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html"> 193</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d"> 196</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>(uint32_t i, uint32_t j) : l1(i), l2(j) {};</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d">l1</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b"> 198</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b">l2</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>&amp; lk) <span class="keyword">const</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> uint32_t in) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html"> 204</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">ChunkGraph</a></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> eraseNode(uint32_t index) = 0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a3712fffabb62d07f594c88e7016d44c1"> 209</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>* links = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a89e568da158d43176fd56a41175ec998"> 210</a></span>&#160; uint32_t* dirtyChunks = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a6e7bce099f58dc2e6c85133cc03dea86"> 211</a></span>&#160; uint32_t linksCount = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4a9474b4a38212d5987afa23db264649"> 212</a></span>&#160; uint32_t dirtyChunksCount = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a36754ed70616d387264cb9bd25331fa7"> 213</a></span>&#160; uint32_t newlyAddedCount = 0;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4966d0c64bd9e8c2a5cde61916fc9947"> 214</a></span>&#160; uint32_t maxLinksCount = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; };</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">Nv::Blast::FractureRT</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#ad219f8566d1ed54a3b61fbfb03946963">NvBlastExtRTCreateFractureRT</a>(uint32_t threads = 1);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Nv::Blast::Fracturer</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a0b98ae50eb40146567af30772be8f6c2">NvBlastExtRTCreateFracturer</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#af9fbda9fc805b0c120ad067172f89bdd">NvBlastExtRTDoFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">Nv::Blast::FractureDesc</a>&amp; desc, int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">Nv::Blast::FractureRT::Stage::ALL</a>, int32_t threadId = 0, int32_t threadCount = 1);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">Nv::Blast::MeshGenerator</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a16e51ac155ee15cbbd65170336f21093">NvBlastExtRTCreateMeshGenerator</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a8d24c375f0f2c447a2e62926ac3d818e">NvBlastExtRTBuildMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">Nv::Blast::MeshDesc</a> dsc, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* outVertices, uint32_t&amp; vCount, uint32_t* indices, <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">Nv::Blast::PerTriangleAdditionalData</a>* adata, uint32_t maxICount, uint32_t maxVCount);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a7ee9429d732ad12d38dfc2f2e04ac0a0">NvBlastExtRTGetChunksToUnite</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, <span class="keyword">const</span> uint32_t* voffsets, uint32_t chunksCount, uint32_t* chunksToUnite);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a558f3b79e0e220a495ab10744a1930af">NvBlastExtRTDetectIslands</a>(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, uint32_t* offsets, <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds, uint32_t chunkCount, <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* graph, uint32_t* islandChunks, uint32_t* islandOffsets);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#ad246180b68843d3a460a12e3c7976f50">NvBlastExtRTCreateChunkGraph</a>(uint32_t maxLinksCount = 4096);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_r_t_8h.html#a6703b07ee846923fe4c02629e18f783c">NvBlastExtRTCookMergedMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTRT_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_graph_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:204</div></div>
+<a href="_nv_blast_ext_r_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTRT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTRT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;cinttypes&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//#define USE_MERGED_MESH</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#ab61e2620c8f2917beffb61e2d42cbc88"> 40</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_VERTICES 262144</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#aa56085b830bbfc750734bc2fec8c0070"> 41</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_EDGES_PER_CHUNK 16384</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#a9cce5b0c1e6c644cdf4d10ca630fb07d"> 42</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_CHUNKS 256</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>Vertex;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">class </span>VertexWelding;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">struct </span>DamagePattern;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html"> 54</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f">parentEdge</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f"> 59</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f">status</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1">pIdx</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba"> 62</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> parentFacet &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html"> 68</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a"> 70</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5"> 71</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d"> 72</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f"> 73</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a> = -1;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134">getInversed</a>()</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> ret;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a> = end;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a> = start;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f">adjacentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html"> 86</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">//set edges, vertices and ffResult counters to 0</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetEdges() = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> copyVerticesAndResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* other) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> uint32_t edgesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> uint32_t verticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t ffResultCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">//Thread safe add, return index in buffer</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp;) = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> uint32_t addVertex(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp;) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> uint32_t addFfResult(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp;) = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//Thread safe, increment counter and return reference to last element</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp; getNewEdge() = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; getNewVertex() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; getNewFfResult() = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">//User allocated buffers should have size more than return values of above function </span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#af16c26c7418b7887e042f4cdb0d3e408"> 111</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* edges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a9b53f2d6ac89e52b307c4cc7ed891690"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a74ca8e839974a75618e2e23e63922f84"> 113</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>* ffResult = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracturer.html"> 120</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_generator.html"> 126</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html"> 132</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">FractureDesc</a></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a17f1aec6d7cae1b05535897faedd0239"> 134</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a>* fr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a8afba8dc673e5104eb22daae072edc52"> 135</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* model = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#aaf073bd947a0518fe6743b32552d913d"> 136</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* cell = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#afc2f45708d3f78e519e108f197823001"> 137</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* modelAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a0727c80c4fc8719fe848aaaccb20f278"> 138</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* cellAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a3b6c165b5a5656f451c3e1495415911b"> 139</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a6fddc4ebaebd6157eb9a7c869a2ac815"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a"> 141</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a">chunkId</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html"> 144</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8"> 146</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8">materialIndex</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8"> 147</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8">smoothingGroup</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html"> 150</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">MeshDesc</a></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a13aab51982ee023ece211a00492d3317"> 152</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a>* tr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a62b3efe6edcc0e9709bf87630b327fc2"> 153</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* bEdges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ae0d86d4604dafe840dff592dc64df24c"> 154</a></span>&#160; uint32_t edesCount = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ab5495afac84f3f3ab81fc67915e6bde8"> 155</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* inVertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#af324b167e69af8df2eaeb40362e2a361"> 156</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA = <span class="keyword">nullptr</span>; <span class="comment">// used to gather additional data from source mesh, for example material ID </span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a9447e8d8b3c43992fe40dee1cbd9be81"> 157</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t.html"> 160</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html"> 164</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html">Stage</a></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">enum</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4af28c3ba8009483e0f4f2de1f28d0d400"> 168</a></span>&#160; FACET_FACET_TEST = 1,</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a1591fbb59b0ef6d1746ea47560ccb580"> 169</a></span>&#160; RETAIN_FROM_FRACTURED_MESH = 2,</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a289e75c83bc97396f0ed62d78162df1d"> 170</a></span>&#160; RETAIN_FROM_PATTERN = 4,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923"> 172</a></span>&#160; ALL = 0xFFFFFFFF</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; };</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processMesh(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> uint32_t getResultChunkCount() = 0;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* getVertexBuffer() = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexBuffer() = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> uint32_t* getVertexOffset() = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexOffset() = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* getPerTriangleData() = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> dumpChunksToObj(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be"> 187</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be">PatternFacetType</a> { <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea0d1d9155e8519d41f5bf8e02e94d3d1c">GOOD_FACET</a> = 0, <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea7a5a857c21346bed3fbf7d94a0c3d4e7">INFINITE_FACET</a> = 0xffffff };</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html"> 193</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d"> 196</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>(uint32_t i, uint32_t j) : l1(i), l2(j) {};</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d">l1</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b"> 198</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b">l2</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>&amp; lk) <span class="keyword">const</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> uint32_t in) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html"> 204</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">ChunkGraph</a></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> eraseNode(uint32_t index) = 0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a3712fffabb62d07f594c88e7016d44c1"> 209</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>* links = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a89e568da158d43176fd56a41175ec998"> 210</a></span>&#160; uint32_t* dirtyChunks = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a6e7bce099f58dc2e6c85133cc03dea86"> 211</a></span>&#160; uint32_t linksCount = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4a9474b4a38212d5987afa23db264649"> 212</a></span>&#160; uint32_t dirtyChunksCount = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a36754ed70616d387264cb9bd25331fa7"> 213</a></span>&#160; uint32_t newlyAddedCount = 0;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4966d0c64bd9e8c2a5cde61916fc9947"> 214</a></span>&#160; uint32_t maxLinksCount = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; };</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">Nv::Blast::FractureRT</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#ad219f8566d1ed54a3b61fbfb03946963">NvBlastExtRTCreateFractureRT</a>(uint32_t threads = 1);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Nv::Blast::Fracturer</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a0b98ae50eb40146567af30772be8f6c2">NvBlastExtRTCreateFracturer</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#af9fbda9fc805b0c120ad067172f89bdd">NvBlastExtRTDoFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">Nv::Blast::FractureDesc</a>&amp; desc, int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">Nv::Blast::FractureRT::Stage::ALL</a>, int32_t threadId = 0, int32_t threadCount = 1);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">Nv::Blast::MeshGenerator</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a16e51ac155ee15cbbd65170336f21093">NvBlastExtRTCreateMeshGenerator</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a8d24c375f0f2c447a2e62926ac3d818e">NvBlastExtRTBuildMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">Nv::Blast::MeshDesc</a> dsc, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* outVertices, uint32_t&amp; vCount, uint32_t* indices, <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">Nv::Blast::PerTriangleAdditionalData</a>* adata, uint32_t maxICount, uint32_t maxVCount);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a7ee9429d732ad12d38dfc2f2e04ac0a0">NvBlastExtRTGetChunksToUnite</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, <span class="keyword">const</span> uint32_t* voffsets, uint32_t chunksCount, uint32_t* chunksToUnite);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a558f3b79e0e220a495ab10744a1930af">NvBlastExtRTDetectIslands</a>(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, uint32_t* offsets, <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds, uint32_t chunkCount, <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* graph, uint32_t* islandChunks, uint32_t* islandOffsets);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#ad246180b68843d3a460a12e3c7976f50">NvBlastExtRTCreateChunkGraph</a>(uint32_t maxLinksCount = 4096);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_r_t_8h.html#a6703b07ee846923fe4c02629e18f783c">NvBlastExtRTCookMergedMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTRT_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_graph_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:204</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a13e09335669128f9ea506224bfd3d9be"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be">Nv::Blast::PatternFacetType</a></div><div class="ttdeci">PatternFacetType</div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:187</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_boolean_result_edge_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">Nv::Blast::BooleanResultEdge</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:68</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_mesh_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_mesh_desc.html">Nv::Blast::MeshDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:150</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_serialization_8h_source.html b/docs/api_docs/files/_nv_blast_ext_serialization_8h_source.html
index 50381f0..a0f1bd2 100755
--- a/docs/api_docs/files/_nv_blast_ext_serialization_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_serialization_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_serialization_8h_source.
<div class="title">NvBlastExtSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">ExtSerialization</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html"> 46</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html">EncodingID</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7"> 48</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7">Enum</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec"> 50</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec">CapnProtoBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;N&#39;</span>, <span class="charliteral">&#39;B&#39;</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd">RawBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;W&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html"> 56</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* requestBuffer(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a9d922a89c41ba9b1997d7e60d6d7b35b">setSerializationEncoding</a>(uint32_t encodingID) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5e4409ef51f083ccaf2993e0b77dc951">getSerializationEncoding</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5790c794d5c395736c223d8ab6f036ca">setBufferProvider</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a>* bufferProvider) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">peekHeader</a>(uint32_t* objectTypeID, uint32_t* encodingID, uint64_t* dataSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize) = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a52f3f5008a0047ee072fb5e1155c28e5">skipObject</a>(uint64_t&amp; bufferSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer) = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a6fb7f346cbe938ccb155be5a8b8c9efe">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize, uint32_t* objectTypeIDPtr = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#adfb92a5ecbd708138d0b9f67a323be79">serializeIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keywordtype">object</span>, uint32_t objectTypeID) = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a08937f68c380fe0bcb0cba17ea4b539e">release</a>() = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1"> 140</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1">~ExtSerialization</a>() {}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>* <a class="code" href="_nv_blast_ext_serialization_8h.html#a9dad7f69d7a72d402c99238ed3c34bfc">NvBlastExtSerializationCreate</a>();</div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html_a031a3f5df089e26d4e97f76f35c1bc9f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">Nv::Blast::ExtSerialization::peekHeader</a></div><div class="ttdeci">virtual bool peekHeader(uint32_t *objectTypeID, uint32_t *encodingID, uint64_t *dataSize, const void *buffer, uint64_t bufferSize)=0</div></div>
+<a href="_nv_blast_ext_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">ExtSerialization</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html"> 46</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html">EncodingID</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7"> 48</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7">Enum</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec"> 50</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec">CapnProtoBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;N&#39;</span>, <span class="charliteral">&#39;B&#39;</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd">RawBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;W&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html"> 56</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* requestBuffer(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a9d922a89c41ba9b1997d7e60d6d7b35b">setSerializationEncoding</a>(uint32_t encodingID) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5e4409ef51f083ccaf2993e0b77dc951">getSerializationEncoding</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5790c794d5c395736c223d8ab6f036ca">setBufferProvider</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a>* bufferProvider) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">peekHeader</a>(uint32_t* objectTypeID, uint32_t* encodingID, uint64_t* dataSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize) = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a52f3f5008a0047ee072fb5e1155c28e5">skipObject</a>(uint64_t&amp; bufferSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer) = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a6fb7f346cbe938ccb155be5a8b8c9efe">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize, uint32_t* objectTypeIDPtr = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#adfb92a5ecbd708138d0b9f67a323be79">serializeIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keywordtype">object</span>, uint32_t objectTypeID) = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a08937f68c380fe0bcb0cba17ea4b539e">release</a>() = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1"> 140</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1">~ExtSerialization</a>() {}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>* <a class="code" href="_nv_blast_ext_serialization_8h.html#a9dad7f69d7a72d402c99238ed3c34bfc">NvBlastExtSerializationCreate</a>();</div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html_a031a3f5df089e26d4e97f76f35c1bc9f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">Nv::Blast::ExtSerialization::peekHeader</a></div><div class="ttdeci">virtual bool peekHeader(uint32_t *objectTypeID, uint32_t *encodingID, uint64_t *dataSize, const void *buffer, uint64_t bufferSize)=0</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html_a52f3f5008a0047ee072fb5e1155c28e5"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html#a52f3f5008a0047ee072fb5e1155c28e5">Nv::Blast::ExtSerialization::skipObject</a></div><div class="ttdeci">virtual const void * skipObject(uint64_t &amp;bufferSize, const void *buffer)=0</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d_html_ab03c7560bbcf698c0806673b273c31d7"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7">Nv::Blast::ExtSerialization::EncodingID::Enum</a></div><div class="ttdeci">Enum</div><div class="ttdef"><b>Definition:</b> NvBlastExtSerialization.h:48</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_stress_solver_8h_source.html b/docs/api_docs/files/_nv_blast_ext_stress_solver_8h_source.html
index acea753..ce2fc1e 100755
--- a/docs/api_docs/files/_nv_blast_ext_stress_solver_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_stress_solver_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_stress_solver_8h_source.
<div class="title">NvBlastExtStressSolver.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0"> 58</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0">hardness</a>; </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4"> 59</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4">stressLinearFactor</a>; </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb"> 60</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb">stressAngularFactor</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9"> 62</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9">graphReductionLevel</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226"> 64</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>() :</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; hardness(1000.0f),</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; stressLinearFactor(0.25f),</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; stressAngularFactor(0.75f),</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bondIterationsPerFrame(18000),</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; graphReductionLevel(3)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html">ExtForceMode</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d"> 81</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">Enum</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">IMPULSE</a>, </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a">VELOCITY</a>, </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html"> 104</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>* create(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNodeInfo(uint32_t graphNodeIndex, <span class="keywordtype">float</span> mass, <span class="keywordtype">float</span> volume, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <span class="keywordtype">bool</span> isStatic) = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAllNodesInfoFromLL(<span class="keywordtype">float</span> density = 1.0f) = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; getSettings() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> notifyActorCreated(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> notifyActorDestroyed(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addForce(uint32_t graphNodeIndex, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addGravityForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localGravity) = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addAngularVelocity(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localCenterMass, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localAngularVelocity) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update() = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">virtual</span> uint32_t getOverstressedBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">virtual</span> uint32_t generateFractureCommandsPerActor(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actorBuffer, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandsBuffer, uint32_t bufferSize) = 0;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorLinear() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorAngular() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">virtual</span> uint32_t getFrameCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d"> 327</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da1fd3b240bb76745efd8d5d3d2664cabc"> 329</a></span>&#160; STRESS_GRAPH = 0, </div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da0b55d93864b9c304d94922037b53eb13"> 330</a></span>&#160; STRESS_GRAPH_NODES_IMPULSES = 1, </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4daf00fff35b251ccbeaa7097a7b8a3054c"> 331</a></span>&#160; STRESS_GRAPH_BONDS_IMPULSES = 2 </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; };</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html"> 337</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c"> 339</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, <span class="keyword">const</span> uint32_t&amp; c)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; : pos0(p0), color0(c), pos1(p1), color1(c) {}</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b"> 342</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b">pos0</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1"> 343</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1">color0</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf"> 344</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf">pos1</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278"> 345</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">color1</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html"> 351</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145"> 353</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145">lines</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a">lineCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; };</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a> fillDebugRender(<span class="keyword">const</span> uint32_t* nodes, uint32_t nodeCount, <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a> mode, <span class="keywordtype">float</span> scale = 1.0f) = 0;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823"> 385</a></span>&#160; <span class="keyword">static</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823">getIterationsPerFrame</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings, uint32_t bondCount)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint32_t perFrame = settings.<a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a> / (bondCount + 1);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> perFrame &gt; 0 ? perFrame : 1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396"> 398</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396">getIterationsPerFrame</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> getIterationsPerFrame(getSettings(), getBondCount());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;};</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line_html_a5c5e3c739f9ee6875264a6255b725278"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">Nv::Blast::ExtStressSolver::DebugLine::color1</a></div><div class="ttdeci">uint32_t color1</div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:345</div></div>
+<a href="_nv_blast_ext_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0"> 58</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0">hardness</a>; </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4"> 59</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4">stressLinearFactor</a>; </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb"> 60</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb">stressAngularFactor</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9"> 62</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9">graphReductionLevel</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226"> 64</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>() :</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; hardness(1000.0f),</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; stressLinearFactor(0.25f),</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; stressAngularFactor(0.75f),</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bondIterationsPerFrame(18000),</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; graphReductionLevel(3)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html">ExtForceMode</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d"> 81</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">Enum</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">IMPULSE</a>, </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a">VELOCITY</a>, </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html"> 104</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>* create(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNodeInfo(uint32_t graphNodeIndex, <span class="keywordtype">float</span> mass, <span class="keywordtype">float</span> volume, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <span class="keywordtype">bool</span> isStatic) = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAllNodesInfoFromLL(<span class="keywordtype">float</span> density = 1.0f) = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; getSettings() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> notifyActorCreated(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> notifyActorDestroyed(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addForce(uint32_t graphNodeIndex, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addGravityForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localGravity) = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addAngularVelocity(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localCenterMass, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localAngularVelocity) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update() = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">virtual</span> uint32_t getOverstressedBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">virtual</span> uint32_t generateFractureCommandsPerActor(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actorBuffer, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandsBuffer, uint32_t bufferSize) = 0;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorLinear() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorAngular() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">virtual</span> uint32_t getFrameCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d"> 327</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da1fd3b240bb76745efd8d5d3d2664cabc"> 329</a></span>&#160; STRESS_GRAPH = 0, </div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da0b55d93864b9c304d94922037b53eb13"> 330</a></span>&#160; STRESS_GRAPH_NODES_IMPULSES = 1, </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4daf00fff35b251ccbeaa7097a7b8a3054c"> 331</a></span>&#160; STRESS_GRAPH_BONDS_IMPULSES = 2 </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; };</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html"> 337</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c"> 339</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, <span class="keyword">const</span> uint32_t&amp; c)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; : pos0(p0), color0(c), pos1(p1), color1(c) {}</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b"> 342</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b">pos0</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1"> 343</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1">color0</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf"> 344</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf">pos1</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278"> 345</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">color1</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html"> 351</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145"> 353</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145">lines</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a">lineCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; };</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a> fillDebugRender(<span class="keyword">const</span> uint32_t* nodes, uint32_t nodeCount, <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a> mode, <span class="keywordtype">float</span> scale = 1.0f) = 0;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823"> 385</a></span>&#160; <span class="keyword">static</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823">getIterationsPerFrame</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings, uint32_t bondCount)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint32_t perFrame = settings.<a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a> / (bondCount + 1);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> perFrame &gt; 0 ? perFrame : 1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396"> 398</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396">getIterationsPerFrame</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> getIterationsPerFrame(getSettings(), getBondCount());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;};</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line_html_a5c5e3c739f9ee6875264a6255b725278"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">Nv::Blast::ExtStressSolver::DebugLine::color1</a></div><div class="ttdeci">uint32_t color1</div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:345</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html_a49fa3a64fe091bca26729d8e903a8ba9"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9">Nv::Blast::ExtStressSolverSettings::graphReductionLevel</a></div><div class="ttdeci">uint32_t graphReductionLevel</div><div class="ttdoc">graph reduction level </div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:62</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html_ad489853b66a5f118e8a70b4d1e296f3d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">Nv::Blast::ExtStressSolverSettings::bondIterationsPerFrame</a></div><div class="ttdeci">uint32_t bondIterationsPerFrame</div><div class="ttdoc">number of bond iterations to perform per frame, </div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:61</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_force_mode_html_ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">Nv::Blast::ExtForceMode::IMPULSE</a></div><div class="ttdoc">parameter has unit of mass * distance /time </div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:83</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_sync_8h_source.html b/docs/api_docs/files/_nv_blast_ext_sync_8h_source.html
index 27a5a96..a562ac7 100755
--- a/docs/api_docs/files/_nv_blast_ext_sync_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_sync_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_sync_8h_source.html','')
<div class="title">NvBlastExtSync.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_sync_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_8h.html">NvBlastTk.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;foundation/PxTransform.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html">ExtSyncEventType</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845"> 52</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">Enum</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17"> 54</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17">Fracture</a> = 0, </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c">FamilySync</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c"> 56</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c">Physics</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5">Count</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html"> 66</a></span>&#160;<span class="keyword">struct </span>NV_DLL_EXPORT <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799"> 68</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799">ExtSyncEvent</a>(<a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> t) : type(t) {}</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137"> 69</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137">~ExtSyncEvent</a>() {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc"> 72</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc">getEvent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> release();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb">type</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3"> 84</a></span>&#160; uint64_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3">timestamp</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149"> 85</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149">familyID</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, ExtSyncEventType::Enum eventType&gt;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1">ExtSyncEventInstance</a>() : <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>(eventType) {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a433ef4a1ed60ff88841fbab46ed1675f"> 97</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> EVENT_TYPE = eventType;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a"> 99</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a">clone</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83">NVBLAST_NEW</a> (T) (*(T*)<span class="keyword">this</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html"> 109</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html">ExtSyncEventFracture</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFracture, ExtSyncEventType::Fracture&gt;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747"> 111</a></span>&#160; std::vector&lt;NvBlastBondFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747">bondFractures</a>; </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1"> 112</a></span>&#160; std::vector&lt;NvBlastChunkFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1">chunkFractures</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;};</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html"> 119</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html">ExtSyncEventFamilySync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFamilySync, ExtSyncEventType::FamilySync&gt;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f"> 121</a></span>&#160; std::vector&lt;char&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f">family</a>; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html">ExtSyncEventPhysicsSync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventPhysicsSync, ExtSyncEventType::Physics&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html"> 130</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html">ActorData</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1"> 132</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1">actorIndex</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c"> 133</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c">transform</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9"> 136</a></span>&#160; std::vector&lt;ActorData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9">data</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_sync.html"> 145</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a>* create();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getSyncBufferSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> acquireSyncBuffer(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>*<span class="keyword">const</span>*&amp; buffer, uint32_t&amp; size) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseSyncBuffer() = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applySyncBuffer(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>** buffer, uint32_t size, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* groupForNewActors, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* manager = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;};</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSYNC_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_ext_sync_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_8h.html">NvBlastTk.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;foundation/PxTransform.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html">ExtSyncEventType</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845"> 52</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">Enum</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17"> 54</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17">Fracture</a> = 0, </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c">FamilySync</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c"> 56</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c">Physics</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5">Count</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html"> 66</a></span>&#160;<span class="keyword">struct </span>NV_DLL_EXPORT <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799"> 68</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799">ExtSyncEvent</a>(<a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> t) : type(t) {}</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137"> 69</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137">~ExtSyncEvent</a>() {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc"> 72</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc">getEvent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> release();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb">type</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3"> 84</a></span>&#160; uint64_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3">timestamp</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149"> 85</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149">familyID</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, ExtSyncEventType::Enum eventType&gt;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1">ExtSyncEventInstance</a>() : <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>(eventType) {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a433ef4a1ed60ff88841fbab46ed1675f"> 97</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> EVENT_TYPE = eventType;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a"> 99</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a">clone</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83">NVBLAST_NEW</a> (T) (*(T*)<span class="keyword">this</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html"> 109</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html">ExtSyncEventFracture</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFracture, ExtSyncEventType::Fracture&gt;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747"> 111</a></span>&#160; std::vector&lt;NvBlastBondFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747">bondFractures</a>; </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1"> 112</a></span>&#160; std::vector&lt;NvBlastChunkFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1">chunkFractures</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;};</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html"> 119</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html">ExtSyncEventFamilySync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFamilySync, ExtSyncEventType::FamilySync&gt;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f"> 121</a></span>&#160; std::vector&lt;char&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f">family</a>; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html">ExtSyncEventPhysicsSync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventPhysicsSync, ExtSyncEventType::Physics&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html"> 130</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html">ActorData</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1"> 132</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1">actorIndex</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c"> 133</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c">transform</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9"> 136</a></span>&#160; std::vector&lt;ActorData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9">data</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_sync.html"> 145</a></span>&#160;<span class="keyword">class </span>NV_DLL_EXPORT <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a>* create();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getSyncBufferSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> acquireSyncBuffer(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>*<span class="keyword">const</span>*&amp; buffer, uint32_t&amp; size) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseSyncBuffer() = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applySyncBuffer(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>** buffer, uint32_t size, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* groupForNewActors, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* manager = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;};</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSYNC_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_html_a9a1c1db5fb9c506a4468cca4e4e089e9"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9">Nv::Blast::ExtSyncEventPhysicsSync::data</a></div><div class="ttdeci">std::vector&lt; ActorData &gt; data</div><div class="ttdoc">actors data </div><div class="ttdef"><b>Definition:</b> NvBlastExtSync.h:136</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_sync_event_instance_html_a53e452712658fcd2f8c4ba272d2aa1f1"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1">Nv::Blast::ExtSyncEventInstance::ExtSyncEventInstance</a></div><div class="ttdeci">ExtSyncEventInstance()</div><div class="ttdef"><b>Definition:</b> NvBlastExtSync.h:95</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_sync_event_type_html_a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5">Nv::Blast::ExtSyncEventType::Count</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtSync.h:58</div></div>
diff --git a/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h_source.html b/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h_source.html
index 73b0c18..55bb1fc 100755
--- a/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_ext_tk_serialization_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_tk_serialization_8h_sour
<div class="title">NvBlastExtTkSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_tk_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html">TkObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373a91e23bb0f555f807a27f1f1b37cf1a3d"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373a91e23bb0f555f807a27f1f1b37cf1a3d">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;K&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#a3b56ccefec36904aed01309194c012c0">NvBlastExtTkSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#ac41dafd2d5ffd5a6131426755c477793">NvBlastExtSerializationSerializeTkAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a>* asset);</div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
+<a href="_nv_blast_ext_tk_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html">TkObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373a91e23bb0f555f807a27f1f1b37cf1a3d"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373a91e23bb0f555f807a27f1f1b37cf1a3d">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;K&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#a3b56ccefec36904aed01309194c012c0">NvBlastExtTkSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#ac41dafd2d5ffd5a6131426755c477793">NvBlastExtSerializationSerializeTkAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a>* asset);</div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html_ae5c980f1b9848025a2fefa05a9d3bce1"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a></div><div class="ttdeci">#define NVBLAST_API</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessor.h:37</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtSerialization.h:42</div></div>
diff --git a/docs/api_docs/files/_nv_blast_globals_8h_source.html b/docs/api_docs/files/_nv_blast_globals_8h_source.html
index 46fd089..847cd68 100755
--- a/docs/api_docs/files/_nv_blast_globals_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_globals_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_globals_8h_source.html','');
<div class="title">NvBlastGlobals.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_globals_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;new&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">AllocatorCallback</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406"> 51</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406">~AllocatorCallback</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(<span class="keywordtype">void</span>* ptr) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_error_code.html">ErrorCode</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab"> 90</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Enum</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b"> 92</a></span>&#160; eNO_ERROR = 0,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba"> 95</a></span>&#160; eDEBUG_INFO = 1,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77"> 98</a></span>&#160; eDEBUG_WARNING = 2,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaec8c84e7ac93ddce73241014c574c771"> 101</a></span>&#160; eINVALID_PARAMETER = 4,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6"> 104</a></span>&#160; eINVALID_OPERATION = 8,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba963775dfd66699f8f657b0d70935eb1e"> 107</a></span>&#160; eOUT_OF_MEMORY = 16,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba019ab0e8fa80ab359838e3afa6bedd7a"> 112</a></span>&#160; eINTERNAL_ERROR = 32,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ababdc867619281f022cc360e8e9964cecb"> 115</a></span>&#160; eABORT = 64,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba8bde8ff474e2a74ccb5de49c316c313a"> 118</a></span>&#160; ePERF_WARNING = 128,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba3161b74e1d5767417c6b3dac7c05f6fe"> 121</a></span>&#160; eMASK_ALL = -1</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;};</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html"> 131</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">ErrorCallback</a></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0"> 134</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0">~ErrorCallback</a>()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a593586b9c9276aecb5a8f552f526f73b">NvBlastGlobalSetAllocatorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* allocatorCallback);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#adfce9f2ac7e3acfdd5c82cdbc9db0f36">NvBlastGlobalGetErrorCallback</a>();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a67996f009abbedc2d6c769f4af11f95f">NvBlastGlobalSetErrorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* errorCallback);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf"> 195</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6">ErrorCode::eINVALID_OPERATION</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">NvBlastMessage::Warning</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77">ErrorCode::eDEBUG_WARNING</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">NvBlastMessage::Info</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba">ErrorCode::eDEBUG_INFO</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">NvBlastMessage::Debug</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#adfce9f2ac7e3acfdd5c82cdbc9db0f36">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>(errorCode, msg, file, line);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741"> 220</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC(_size) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, nullptr, __FILE__, __LINE__)</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d"> 221</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC_NAMED(_size, _name) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, _name, __FILE__, __LINE__)</span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741"> 222</a></span>&#160;<span class="preprocessor">#define NVBLAST_FREE(_mem) NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(_mem)</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83"> 228</a></span>&#160;<span class="preprocessor">#define NVBLAST_NEW(T) new (NvBlastGlobalGetAllocatorCallback()-&gt;allocate(sizeof(T), #T, __FILE__, __LINE__)) T</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a169634cc0a7d8a8567b8b390c926b2e7"> 234</a></span>&#160;<span class="preprocessor">#define NVBLAST_DELETE(obj, T) \</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> (obj)-&gt;~T(); \</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(obj)</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#aaa478c2c6c4b296431d526caa7ee6369"> 245</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG(_code, _msg) NvBlastGlobalGetErrorCallback()-&gt;reportError(_code, _msg, __FILE__, __LINE__)</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0"> 246</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_ERROR(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg)</span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a571a982fe46cf7f797e63393a027d359"> 247</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_WARNING(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg)</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9315f52cc9bb2de8f03b544716a06dce"> 248</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_INFO(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a840ebe37ee602bb328d88d629f8f3017"> 249</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_DEBUG(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg)</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a12c3113fdc58a74fd2cf9e4839a14d74"> 255</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK(_code, _expr, _msg, _onFail) \</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> if(!(_expr)) \</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> NVBLAST_LOG(_code, _msg); \</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> { _onFail; }; \</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> } </span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a7ac166d3622489e15ed28c5e61b22e0b"> 264</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#addfc51da498a3e77d748dff30084df79"> 265</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9118c6afe116051855dcd7fcd38baa9a"> 266</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#afee8367abfa398f31a979b6a6918492f"> 267</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// Macro to load a uint32_t (or larger) with four characters</span></div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e"> 274</a></span>&#160;<span class="preprocessor">#define NVBLAST_FOURCC(_a, _b, _c, _d) ( (uint32_t)(_a) | (uint32_t)(_b)&lt;&lt;8 | (uint32_t)(_c)&lt;&lt;16 | (uint32_t)(_d)&lt;&lt;24 )</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTGLOBALS_H</span></div><div class="ttc" id="struct_nv_blast_message_html_aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"><div class="ttname"><a href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a></div><div class="ttdoc">Error messages. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:49</div></div>
+<a href="_nv_blast_globals_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;new&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">AllocatorCallback</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406"> 51</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406">~AllocatorCallback</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(<span class="keywordtype">void</span>* ptr) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_error_code.html">ErrorCode</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab"> 90</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Enum</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b"> 92</a></span>&#160; eNO_ERROR = 0,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba"> 95</a></span>&#160; eDEBUG_INFO = 1,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77"> 98</a></span>&#160; eDEBUG_WARNING = 2,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaec8c84e7ac93ddce73241014c574c771"> 101</a></span>&#160; eINVALID_PARAMETER = 4,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6"> 104</a></span>&#160; eINVALID_OPERATION = 8,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba963775dfd66699f8f657b0d70935eb1e"> 107</a></span>&#160; eOUT_OF_MEMORY = 16,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba019ab0e8fa80ab359838e3afa6bedd7a"> 112</a></span>&#160; eINTERNAL_ERROR = 32,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ababdc867619281f022cc360e8e9964cecb"> 115</a></span>&#160; eABORT = 64,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba8bde8ff474e2a74ccb5de49c316c313a"> 118</a></span>&#160; ePERF_WARNING = 128,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba3161b74e1d5767417c6b3dac7c05f6fe"> 121</a></span>&#160; eMASK_ALL = -1</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;};</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html"> 131</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">ErrorCallback</a></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0"> 134</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0">~ErrorCallback</a>()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a593586b9c9276aecb5a8f552f526f73b">NvBlastGlobalSetAllocatorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* allocatorCallback);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#adfce9f2ac7e3acfdd5c82cdbc9db0f36">NvBlastGlobalGetErrorCallback</a>();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a67996f009abbedc2d6c769f4af11f95f">NvBlastGlobalSetErrorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* errorCallback);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf"> 195</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6">ErrorCode::eINVALID_OPERATION</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">NvBlastMessage::Warning</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77">ErrorCode::eDEBUG_WARNING</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">NvBlastMessage::Info</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba">ErrorCode::eDEBUG_INFO</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">NvBlastMessage::Debug</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#adfce9f2ac7e3acfdd5c82cdbc9db0f36">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>(errorCode, msg, file, line);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741"> 220</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC(_size) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, nullptr, __FILE__, __LINE__)</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d"> 221</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC_NAMED(_size, _name) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, _name, __FILE__, __LINE__)</span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741"> 222</a></span>&#160;<span class="preprocessor">#define NVBLAST_FREE(_mem) NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(_mem)</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83"> 228</a></span>&#160;<span class="preprocessor">#define NVBLAST_NEW(T) new (NvBlastGlobalGetAllocatorCallback()-&gt;allocate(sizeof(T), #T, __FILE__, __LINE__)) T</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a169634cc0a7d8a8567b8b390c926b2e7"> 234</a></span>&#160;<span class="preprocessor">#define NVBLAST_DELETE(obj, T) \</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> (obj)-&gt;~T(); \</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(obj)</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#aaa478c2c6c4b296431d526caa7ee6369"> 245</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG(_code, _msg) NvBlastGlobalGetErrorCallback()-&gt;reportError(_code, _msg, __FILE__, __LINE__)</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0"> 246</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_ERROR(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg)</span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a571a982fe46cf7f797e63393a027d359"> 247</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_WARNING(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg)</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9315f52cc9bb2de8f03b544716a06dce"> 248</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_INFO(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a840ebe37ee602bb328d88d629f8f3017"> 249</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_DEBUG(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg)</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a12c3113fdc58a74fd2cf9e4839a14d74"> 255</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK(_code, _expr, _msg, _onFail) \</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> if(!(_expr)) \</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> NVBLAST_LOG(_code, _msg); \</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> { _onFail; }; \</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> } </span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a7ac166d3622489e15ed28c5e61b22e0b"> 264</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#addfc51da498a3e77d748dff30084df79"> 265</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9118c6afe116051855dcd7fcd38baa9a"> 266</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#afee8367abfa398f31a979b6a6918492f"> 267</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// Macro to load a uint32_t (or larger) with four characters</span></div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e"> 274</a></span>&#160;<span class="preprocessor">#define NVBLAST_FOURCC(_a, _b, _c, _d) ( (uint32_t)(_a) | (uint32_t)(_b)&lt;&lt;8 | (uint32_t)(_c)&lt;&lt;16 | (uint32_t)(_d)&lt;&lt;24 )</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTGLOBALS_H</span></div><div class="ttc" id="struct_nv_blast_message_html_aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"><div class="ttname"><a href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a></div><div class="ttdoc">Error messages. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:49</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_ae0303f5b6c3993251bdf790f43ef4e90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">Nv::Blast::AllocatorCallback::allocate</a></div><div class="ttdeci">virtual void * allocate(size_t size, const char *typeName, const char *filename, int line)=0</div><div class="ttdoc">Allocates size bytes of memory, which must be 16-byte aligned. </div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_error_code_html_a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba">Nv::Blast::ErrorCode::eDEBUG_INFO</a></div><div class="ttdoc">An informational message. </div><div class="ttdef"><b>Definition:</b> NvBlastGlobals.h:95</div></div>
diff --git a/docs/api_docs/files/_nv_blast_preprocessor_8h_source.html b/docs/api_docs/files/_nv_blast_preprocessor_8h_source.html
index bd2d938..c2b050b 100755
--- a/docs/api_docs/files/_nv_blast_preprocessor_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_preprocessor_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_preprocessor_8h_source.html'
<div class="title">NvBlastPreprocessor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_preprocessor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1"> 37</a></span>&#160;<span class="preprocessor">#define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTPREPROCESSOR_H</span></div></div><!-- fragment --></div><!-- contents -->
+<a href="_nv_blast_preprocessor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1"> 37</a></span>&#160;<span class="preprocessor">#define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTPREPROCESSOR_H</span></div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div class="footer">
diff --git a/docs/api_docs/files/_nv_blast_profiler_8h_source.html b/docs/api_docs/files/_nv_blast_profiler_8h_source.html
index 7e9bcc8..9cbdab7 100755
--- a/docs/api_docs/files/_nv_blast_profiler_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_profiler_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_profiler_8h_source.html','')
<div class="title">NvBlastProfiler.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7"> 47</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7">~ProfilerCallback</a>() {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a96bc5661f2d7eae63a86fcd9f3e44b49">zoneEnd</a>() = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html">ProfilerDetail</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f"> 67</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Level</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc">LOW</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721">MEDIUM</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3"> 71</a></span>&#160; HIGH</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#afba345e0f5a9689ded425622ea9a659b">NvBlastProfilerSetCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a>* pcb);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#a13f57e40a8f414e4004336f0ed82c540">NvBlastProfilerSetDetail</a>(<a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a48e8eda29ebed223a7d2283d5bb99ec6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">Nv::Blast::ProfilerCallback::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name)=0</div></div>
+<a href="_nv_blast_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7"> 47</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7">~ProfilerCallback</a>() {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a96bc5661f2d7eae63a86fcd9f3e44b49">zoneEnd</a>() = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html">ProfilerDetail</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f"> 67</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Level</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc">LOW</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721">MEDIUM</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3"> 71</a></span>&#160; HIGH</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#afba345e0f5a9689ded425622ea9a659b">NvBlastProfilerSetCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a>* pcb);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#a13f57e40a8f414e4004336f0ed82c540">NvBlastProfilerSetDetail</a>(<a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a48e8eda29ebed223a7d2283d5bb99ec6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">Nv::Blast::ProfilerCallback::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a6440efe8476a42a30dc27223027a9dd7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7">Nv::Blast::ProfilerCallback::~ProfilerCallback</a></div><div class="ttdeci">virtual ~ProfilerCallback()</div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:47</div></div>
<div class="ttc" id="_nv_blast_profiler_8h_html_a13f57e40a8f414e4004336f0ed82c540"><div class="ttname"><a href="_nv_blast_profiler_8h.html#a13f57e40a8f414e4004336f0ed82c540">NvBlastProfilerSetDetail</a></div><div class="ttdeci">void NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::Level)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a96bc5661f2d7eae63a86fcd9f3e44b49"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a96bc5661f2d7eae63a86fcd9f3e44b49">Nv::Blast::ProfilerCallback::zoneEnd</a></div><div class="ttdeci">virtual void zoneEnd()=0</div></div>
diff --git a/docs/api_docs/files/_nv_blast_px_callbacks_8h_source.html b/docs/api_docs/files/_nv_blast_px_callbacks_8h_source.html
index 1edcc4b..7f2a409 100755
--- a/docs/api_docs/files/_nv_blast_px_callbacks_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_px_callbacks_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_px_callbacks_8h_source.html'
<div class="title">NvBlastPxCallbacks.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_px_callbacks_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxErrorCallback.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxAllocatorCallback.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce"> 41</a></span>&#160;NV_INLINE physx::PxErrorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce">NvBlastGetPxErrorCallback</a>()</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxErrorCallbackWrapper : <span class="keyword">public</span> physx::PxErrorCallback</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(physx::PxErrorCode::Enum code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#adfce9f2ac7e3acfdd5c82cdbc9db0f36">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>((<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Nv::Blast::ErrorCode::Enum</a>)code, message, file, line);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> PxErrorCallbackWrapper wrapper;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c"> 54</a></span>&#160;NV_INLINE physx::PxAllocatorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c">NvBlastGetPxAllocatorCallback</a>()</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">class </span>PxAllocatorCallbackWrapper : <span class="keyword">public</span> physx::PxAllocatorCallback</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* allocate(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, typeName, filename, line);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(<span class="keywordtype">void</span>* ptr)<span class="keyword"> override</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">static</span> PxAllocatorCallbackWrapper wrapper;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTPXCALLBACKS_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
+<a href="_nv_blast_px_callbacks_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxErrorCallback.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxAllocatorCallback.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce"> 41</a></span>&#160;NV_INLINE physx::PxErrorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce">NvBlastGetPxErrorCallback</a>()</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxErrorCallbackWrapper : <span class="keyword">public</span> physx::PxErrorCallback</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(physx::PxErrorCode::Enum code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#adfce9f2ac7e3acfdd5c82cdbc9db0f36">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>((<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Nv::Blast::ErrorCode::Enum</a>)code, message, file, line);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> PxErrorCallbackWrapper wrapper;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c"> 54</a></span>&#160;NV_INLINE physx::PxAllocatorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c">NvBlastGetPxAllocatorCallback</a>()</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">class </span>PxAllocatorCallbackWrapper : <span class="keyword">public</span> physx::PxAllocatorCallback</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* allocate(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, typeName, filename, line);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(<span class="keywordtype">void</span>* ptr)<span class="keyword"> override</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a6960a904cca030a87f4a569d0cd6a4fa">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">static</span> PxAllocatorCallbackWrapper wrapper;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTPXCALLBACKS_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_ae0303f5b6c3993251bdf790f43ef4e90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">Nv::Blast::AllocatorCallback::allocate</a></div><div class="ttdeci">virtual void * allocate(size_t size, const char *typeName, const char *filename, int line)=0</div><div class="ttdoc">Allocates size bytes of memory, which must be 16-byte aligned. </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_error_callback_html_a078419fe6350d27550989af5cf45ad44"><div class="ttname"><a href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">Nv::Blast::ErrorCallback::reportError</a></div><div class="ttdeci">virtual void reportError(ErrorCode::Enum code, const char *message, const char *file, int line)=0</div><div class="ttdoc">Reports an error code. </div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_8h_source.html b/docs/api_docs/files/_nv_blast_tk_8h_source.html
index cb7fa26..d298f89 100755
--- a/docs/api_docs/files/_nv_blast_tk_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_8h_source.html','');});
<div class="title">NvBlastTk.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTK_H</span></div><div class="ttc" id="_nv_blast_tk_family_8h_html"><div class="ttname"><a href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a></div></div>
+<a href="_nv_blast_tk_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTK_H</span></div><div class="ttc" id="_nv_blast_tk_family_8h_html"><div class="ttname"><a href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_framework_8h_html"><div class="ttname"><a href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_actor_8h_html"><div class="ttname"><a href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_group_8h_html"><div class="ttname"><a href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_actor_8h_source.html b/docs/api_docs/files/_nv_blast_tk_actor_8h_source.html
index c0aeeae..ad35419 100755
--- a/docs/api_docs/files/_nv_blast_tk_actor_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_actor_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_actor_8h_source.html','')
<div class="title">NvBlastTkActor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a3f6fc8b1d10cbcadc0accdb50d86ca50">getActorLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a36af13fc7fc1bcc12d329db6278c9b50">getFamily</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9f89112a12e4183432c6aa827ea97875">getIndex</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a81f07e9885669b62c6b5400e6b322e3d">getGroup</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a848142c7567f5eec053a3c9e8520d131">removeFromGroup</a>() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa9bfedd2a888e9cfdf99f83047501a41">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a8893ef15edb5ed7878f636438df97274">getVisibleChunkCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a78c00a774558ed4f74b980d2f66d8548">getVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a1b43f234c8c6f831db35758d76cc0e09">getGraphNodeCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ada97e22b4b93d924b3f70562cb727228">getGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9cc9071ff62db5b24f11716b15c2c369">getBondHealths</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a16de12b18d7b6b06413b58f1a0180e6d">getSplitMaxActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a2079bb8ac6d223c5941357994e8ae522">isPending</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a4969506ea54271b432ee5de4145779a6">damage</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aee5e7fdfa7cd0b33f5ba92168841d4b2">generateFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa02c42add8033877003cd907a0818785">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ae1582f709880a58d222530b6095da48e">getJointCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ad4f8ce52518ca4654e1c16485fb13d8f">getJoints</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>** joints, uint32_t jointsSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a834a7e291fd82ee3b36ad0fc6f349399">isBoundToWorld</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;};</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKACTOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a3f6fc8b1d10cbcadc0accdb50d86ca50">getActorLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a36af13fc7fc1bcc12d329db6278c9b50">getFamily</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9f89112a12e4183432c6aa827ea97875">getIndex</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a81f07e9885669b62c6b5400e6b322e3d">getGroup</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a848142c7567f5eec053a3c9e8520d131">removeFromGroup</a>() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa9bfedd2a888e9cfdf99f83047501a41">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a8893ef15edb5ed7878f636438df97274">getVisibleChunkCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a78c00a774558ed4f74b980d2f66d8548">getVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a1b43f234c8c6f831db35758d76cc0e09">getGraphNodeCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ada97e22b4b93d924b3f70562cb727228">getGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9cc9071ff62db5b24f11716b15c2c369">getBondHealths</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a16de12b18d7b6b06413b58f1a0180e6d">getSplitMaxActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a2079bb8ac6d223c5941357994e8ae522">isPending</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a4969506ea54271b432ee5de4145779a6">damage</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aee5e7fdfa7cd0b33f5ba92168841d4b2">generateFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa02c42add8033877003cd907a0818785">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ae1582f709880a58d222530b6095da48e">getJointCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ad4f8ce52518ca4654e1c16485fb13d8f">getJoints</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>** joints, uint32_t jointsSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a834a7e291fd82ee3b36ad0fc6f349399">isBoundToWorld</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;};</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKACTOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html_a9f89112a12e4183432c6aa827ea97875"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html#a9f89112a12e4183432c6aa827ea97875">Nv::Blast::TkActor::getIndex</a></div><div class="ttdeci">virtual uint32_t getIndex() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html_ad4f8ce52518ca4654e1c16485fb13d8f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html#ad4f8ce52518ca4654e1c16485fb13d8f">Nv::Blast::TkActor::getJoints</a></div><div class="ttdeci">virtual uint32_t getJoints(TkJoint **joints, uint32_t jointsSize) const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html_a3f6fc8b1d10cbcadc0accdb50d86ca50"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html#a3f6fc8b1d10cbcadc0accdb50d86ca50">Nv::Blast::TkActor::getActorLL</a></div><div class="ttdeci">virtual const NvBlastActor * getActorLL() const =0</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_asset_8h_source.html b/docs/api_docs/files/_nv_blast_tk_asset_8h_source.html
index 374724d..a0f8ee9 100755
--- a/docs/api_docs/files/_nv_blast_tk_asset_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_asset_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_asset_8h_source.html','')
<div class="title">NvBlastTkAsset.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c">nodeIndices</a>[2]; </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d"> 51</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d">attachPositions</a>[2]; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_asset.html"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLL() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> uint32_t getLeafChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* getBonds() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> getGraph() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint32_t getDataSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t getJointDescCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescs() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKASSET_H</span></div><div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
+<a href="_nv_blast_tk_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c">nodeIndices</a>[2]; </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d"> 51</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d">attachPositions</a>[2]; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_asset.html"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLL() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> uint32_t getLeafChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* getBonds() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> getGraph() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint32_t getDataSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t getJointDescCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescs() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKASSET_H</span></div><div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_event_8h_source.html b/docs/api_docs/files/_nv_blast_tk_event_8h_source.html
index 9b783c3..c89a6f4 100755
--- a/docs/api_docs/files/_nv_blast_tk_event_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_event_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_event_8h_source.html','')
<div class="title">NvBlastTkEvent.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_event_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html"> 53</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68">family</a>; </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96"> 56</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96">userData</a>; </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c">index</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Enums</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b"> 68</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">Split</a>, </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647"> 71</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">FractureCommand</a>, </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98"> 72</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">FractureEvent</a>, </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2"> 73</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">JointUpdate</a>, </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba8ddfbe9ceb31a245bd3c53bacd64353b"> 75</a></span>&#160; TypeCount</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc">payload</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5"> 80</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5">type</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a"> 88</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a">getPayload</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(payload); }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html"> 99</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html">TkSplitEvent</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a9a9b844cb03a3fca2261b2ead4a8fd70a296e1f3438ab01d26f18804e6780ab3f"> 101</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">TkEvent::Split</a> };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c"> 103</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c">parentData</a>; </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145"> 104</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145">numChildren</a>; </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be"> 105</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be">children</a>; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html">TkFractureCommands</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#ac343f158b01f6c8ea57d494bdd556e72a32a3a2f7f1a68ff430f0ac66e531d913"> 116</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">TkEvent::FractureCommand</a> };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165"> 118</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165">tkActorData</a>; </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030"> 119</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030">buffers</a>; </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html">TkFractureEvents</a></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a882317fc92621221e1e29e2dea74e8c1a15720a970e169b8970bcf2861217b024"> 130</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">TkEvent::FractureEvent</a> };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7"> 132</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7">tkActorData</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e"> 133</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e">buffers</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603"> 134</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603">bondsDamaged</a>; </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925">bondsBroken</a>; </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567">chunksDamaged</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db">chunksBroken</a>; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html">TkJointUpdateEvent</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#add7ff693e53f9561cf17ad3c605acde8afd38618f938db2a6b13fd498b586675c"> 150</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">TkEvent::JointUpdate</a> };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d"> 152</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8"> 154</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8">External</a>, </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717"> 155</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717">Changed</a>, </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da7cfcf13b35fbd5644d11037762bb053c"> 156</a></span>&#160; Unreferenced </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e"> 159</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e">joint</a>; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883"> 160</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883">subtype</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_listener.html"> 168</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKEVENT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_event_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html"> 53</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68">family</a>; </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96"> 56</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96">userData</a>; </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c">index</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Enums</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b"> 68</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">Split</a>, </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647"> 71</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">FractureCommand</a>, </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98"> 72</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">FractureEvent</a>, </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2"> 73</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">JointUpdate</a>, </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba8ddfbe9ceb31a245bd3c53bacd64353b"> 75</a></span>&#160; TypeCount</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc">payload</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5"> 80</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5">type</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a"> 88</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a">getPayload</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(payload); }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html"> 99</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html">TkSplitEvent</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a9a9b844cb03a3fca2261b2ead4a8fd70a296e1f3438ab01d26f18804e6780ab3f"> 101</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">TkEvent::Split</a> };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c"> 103</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c">parentData</a>; </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145"> 104</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145">numChildren</a>; </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be"> 105</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be">children</a>; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html">TkFractureCommands</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#ac343f158b01f6c8ea57d494bdd556e72a32a3a2f7f1a68ff430f0ac66e531d913"> 116</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">TkEvent::FractureCommand</a> };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165"> 118</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165">tkActorData</a>; </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030"> 119</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030">buffers</a>; </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html">TkFractureEvents</a></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a882317fc92621221e1e29e2dea74e8c1a15720a970e169b8970bcf2861217b024"> 130</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">TkEvent::FractureEvent</a> };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7"> 132</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7">tkActorData</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e"> 133</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e">buffers</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603"> 134</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603">bondsDamaged</a>; </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925">bondsBroken</a>; </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567">chunksDamaged</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db">chunksBroken</a>; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html">TkJointUpdateEvent</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#add7ff693e53f9561cf17ad3c605acde8afd38618f938db2a6b13fd498b586675c"> 150</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">TkEvent::JointUpdate</a> };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d"> 152</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8"> 154</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8">External</a>, </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717"> 155</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717">Changed</a>, </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da7cfcf13b35fbd5644d11037762bb053c"> 156</a></span>&#160; Unreferenced </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e"> 159</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e">joint</a>; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883"> 160</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883">subtype</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_listener.html"> 168</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKEVENT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_joint_update_event_html_aba5f7ab9ad11a81e32ac107278428c8e"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e">Nv::Blast::TkJointUpdateEvent::joint</a></div><div class="ttdeci">TkJoint * joint</div><div class="ttdoc">The joint being updated. </div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:159</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_event_html_a255a9107e4fc1135668f9f54eeeec46a"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a">Nv::Blast::TkEvent::getPayload</a></div><div class="ttdeci">const T * getPayload() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:88</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_event_html_a84ab4fb1c357357dd349bb367d1f93dc"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc">Nv::Blast::TkEvent::payload</a></div><div class="ttdeci">const void * payload</div><div class="ttdoc">Type-dependent payload data. </div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:79</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_family_8h_source.html b/docs/api_docs/files/_nv_blast_tk_family_8h_source.html
index 88e2048..de323cc 100755
--- a/docs/api_docs/files/_nv_blast_tk_family_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_family_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_family_8h_source.html',''
<div class="title">NvBlastTkFamily.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkEventListener;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_family.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a2a7f616590d03b66e1fb894627319e00">getFamilyLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a517225cd7b806087595c119ff7cfdb95">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a20dd39add6e56703da92a488b1f3f729">getActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#affa660004a1804edfff31207e07f8c16">getActors</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a9b7b45257532084a2bd487ce21d45e34">addListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aa456973bc9ddd753483ef5d7211e73c9">removeListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#abbcd5d6eabbb5379e77e2942fe0b11a8">applyFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aff0ddc7484f6ee0dad8ee0e2f97be370">reinitialize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* newFamily, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFAMILY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkEventListener;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_family.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a2a7f616590d03b66e1fb894627319e00">getFamilyLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a517225cd7b806087595c119ff7cfdb95">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a20dd39add6e56703da92a488b1f3f729">getActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#affa660004a1804edfff31207e07f8c16">getActors</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a9b7b45257532084a2bd487ce21d45e34">addListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aa456973bc9ddd753483ef5d7211e73c9">removeListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#abbcd5d6eabbb5379e77e2942fe0b11a8">applyFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aff0ddc7484f6ee0dad8ee0e2f97be370">reinitialize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* newFamily, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFAMILY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html_a517225cd7b806087595c119ff7cfdb95"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html#a517225cd7b806087595c119ff7cfdb95">Nv::Blast::TkFamily::getAsset</a></div><div class="ttdeci">virtual const TkAsset * getAsset() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_framework_8h_source.html b/docs/api_docs/files/_nv_blast_tk_framework_8h_source.html
index 4d28825..0182183 100755
--- a/docs/api_docs/files/_nv_blast_tk_framework_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_framework_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_framework_8h_source.html'
<div class="title">NvBlastTkFramework.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_framework_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_8h.html">NvBlastTkEvent.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkEventDispatcher;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">struct </span>TkGroupDesc;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>TkIdentifiable;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">struct </span>TkAssetJointDesc;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc"> 79</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc">BondFlags</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca1f14e7d9defb7fb5476b281741f3d2be"> 81</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca6577aa74a8951c3cab057e369702e416"> 90</a></span>&#160; BondJointed = (1 &lt;&lt; 0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87"> 97</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87">bondFlags</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e"> 100</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e">TkAssetDesc</a>() : bondFlags(nullptr)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; chunkCount = bondCount = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; chunkDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; bondDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c"> 116</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c">asset</a>; </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4"> 119</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4">TkActorDesc</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* inAsset = <span class="keyword">nullptr</span>) : asset(inAsset)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uniformInitialBondHealth = uniformInitialLowerSupportChunkHealth = 1.0f;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; initialBondHealths = initialSupportChunkHealths = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html"> 130</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#ae6badf651ba000f9fe081a5ca096d6cc"> 132</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* families[2]; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a1b8542c85c4ce7cdedc03157b7c2427d"> 133</a></span>&#160; uint32_t chunkIndices[2]; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a34dab72bc3d33c4927c00f870f93ae37"> 134</a></span>&#160; physx::PxVec3 attachPositions[2]; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html"> 141</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html">TkTypeIndex</a></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a"> 143</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">Enum</a></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa0785a75fbc075612bffb021a49526ba2"> 145</a></span>&#160; Asset = 0, </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e"> 146</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e">Family</a>, </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8"> 147</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8">Group</a>, </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa36f1dbee3e8bc13b989992ae25cdf851"> 149</a></span>&#160; TypeCount</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;};</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html"> 160</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>* getType(<a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">TkTypeIndex::Enum</a> typeIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* findObjectByID(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getObjectCount(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> uint32_t getObjects(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>** buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> reorderAssetDescChunks(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> keepBondNormalChunkOrder = <span class="keyword">false</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ensureAssetExactSupportCoverage(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* createGroup(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* createActor(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* createJoint(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05"> 304</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05">~TkFramework</a>() {}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;};</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#abffad36b5cbe769ac6d119bfb58d3523">NvBlastTkFrameworkCreate</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#ac9ef4ab9d817890d7a0f456cc6f07907">NvBlastTkFrameworkGet</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
+<a href="_nv_blast_tk_framework_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_8h.html">NvBlastTkEvent.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkEventDispatcher;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">struct </span>TkGroupDesc;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>TkIdentifiable;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">struct </span>TkAssetJointDesc;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc"> 79</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc">BondFlags</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca1f14e7d9defb7fb5476b281741f3d2be"> 81</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca6577aa74a8951c3cab057e369702e416"> 90</a></span>&#160; BondJointed = (1 &lt;&lt; 0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87"> 97</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87">bondFlags</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e"> 100</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e">TkAssetDesc</a>() : bondFlags(nullptr)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; chunkCount = bondCount = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; chunkDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; bondDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c"> 116</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c">asset</a>; </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4"> 119</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4">TkActorDesc</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* inAsset = <span class="keyword">nullptr</span>) : asset(inAsset)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uniformInitialBondHealth = uniformInitialLowerSupportChunkHealth = 1.0f;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; initialBondHealths = initialSupportChunkHealths = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html"> 130</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#ae6badf651ba000f9fe081a5ca096d6cc"> 132</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* families[2]; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a1b8542c85c4ce7cdedc03157b7c2427d"> 133</a></span>&#160; uint32_t chunkIndices[2]; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a34dab72bc3d33c4927c00f870f93ae37"> 134</a></span>&#160; physx::PxVec3 attachPositions[2]; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html"> 141</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html">TkTypeIndex</a></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a"> 143</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">Enum</a></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa0785a75fbc075612bffb021a49526ba2"> 145</a></span>&#160; Asset = 0, </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e"> 146</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e">Family</a>, </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8"> 147</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8">Group</a>, </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa36f1dbee3e8bc13b989992ae25cdf851"> 149</a></span>&#160; TypeCount</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;};</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html"> 160</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>* getType(<a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">TkTypeIndex::Enum</a> typeIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* findObjectByID(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getObjectCount(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> uint32_t getObjects(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>** buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> reorderAssetDescChunks(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> keepBondNormalChunkOrder = <span class="keyword">false</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ensureAssetExactSupportCoverage(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* createGroup(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* createActor(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* createJoint(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05"> 304</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05">~TkFramework</a>() {}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;};</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#abffad36b5cbe769ac6d119bfb58d3523">NvBlastTkFrameworkCreate</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#ac9ef4ab9d817890d7a0f456cc6f07907">NvBlastTkFrameworkGet</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:40</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_type_index_html_a57681ffd26c84b5272b7e0c23103493a"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">Nv::Blast::TkTypeIndex::Enum</a></div><div class="ttdeci">Enum</div><div class="ttdef"><b>Definition:</b> NvBlastTkFramework.h:143</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_group_8h_source.html b/docs/api_docs/files/_nv_blast_tk_group_8h_source.html
index 603a76e..bcec83c 100755
--- a/docs/api_docs/files/_nv_blast_tk_group_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_group_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_group_8h_source.html','')
<div class="title">NvBlastTkGroup.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_group_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>; </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63"> 60</a></span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63">timers</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3">processedActorsCount</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0"> 62</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0">workerTime</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group_worker.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> process(uint32_t jobId) = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html"> 101</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> uint32_t startProcess() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> endProcess() = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorkerCount(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>) = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> uint32_t getWorkerCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* acquireWorker() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> returnWorker(<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>*) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> process();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9"> 194</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9">Nv::Blast::TkGroup::process</a>()</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint32_t jobCount = startProcess();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (jobCount &gt; 0)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* worker = acquireWorker();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; jobCount; i++)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; worker-&gt;<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">process</a>(i);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; returnWorker(worker);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; endProcess();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKGROUP_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_tk_group_desc_html_ae54fdf33182bd2f481e70c9a05976d48"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">Nv::Blast::TkGroupDesc::workerCount</a></div><div class="ttdeci">uint32_t workerCount</div><div class="ttdoc">The number of expected TkWorkers to process the TkGroup concurrently. </div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:50</div></div>
+<a href="_nv_blast_tk_group_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>; </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63"> 60</a></span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63">timers</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3">processedActorsCount</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0"> 62</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0">workerTime</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group_worker.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> process(uint32_t jobId) = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html"> 101</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> uint32_t startProcess() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> endProcess() = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorkerCount(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>) = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> uint32_t getWorkerCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* acquireWorker() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> returnWorker(<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>*) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> process();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9"> 194</a></span>&#160;NV_INLINE <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9">Nv::Blast::TkGroup::process</a>()</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint32_t jobCount = startProcess();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (jobCount &gt; 0)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* worker = acquireWorker();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; jobCount; i++)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; worker-&gt;<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">process</a>(i);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; returnWorker(worker);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; endProcess();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKGROUP_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_tk_group_desc_html_ae54fdf33182bd2f481e70c9a05976d48"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">Nv::Blast::TkGroupDesc::workerCount</a></div><div class="ttdeci">uint32_t workerCount</div><div class="ttdoc">The number of expected TkWorkers to process the TkGroup concurrently. </div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:50</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_group_html_ae207854ae3e30047c6347f9fd3e7a3b9"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9">Nv::Blast::TkGroup::process</a></div><div class="ttdeci">void process()</div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:194</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_group_worker_html_adf15d994a12f0c0b18dd0a878b1ddd2f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">Nv::Blast::TkGroupWorker::process</a></div><div class="ttdeci">virtual void process(uint32_t jobId)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_identifiable_8h_source.html b/docs/api_docs/files/_nv_blast_tk_identifiable_8h_source.html
index ba43246..953abc5 100755
--- a/docs/api_docs/files/_nv_blast_tk_identifiable_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_identifiable_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_identifiable_8h_source.ht
<div class="title">NvBlastTkIdentifiable.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_identifiable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkType;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// Identifiable API</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a610a75ccff6579e5e54a59f2840f6630">getID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a630e37302f7c8747373431d747415642">setID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">getType</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4"> 77</a></span>&#160; uint64_t <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4">userIntData</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_identifiable_html_ad156c3e85ee665c251e26ac86d3cf03b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">Nv::Blast::TkIdentifiable::getType</a></div><div class="ttdeci">virtual const TkType &amp; getType() const =0</div></div>
+<a href="_nv_blast_tk_identifiable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkType;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// Identifiable API</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a610a75ccff6579e5e54a59f2840f6630">getID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a630e37302f7c8747373431d747415642">setID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">getType</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4"> 77</a></span>&#160; uint64_t <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4">userIntData</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_identifiable_html_ad156c3e85ee665c251e26ac86d3cf03b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">Nv::Blast::TkIdentifiable::getType</a></div><div class="ttdeci">virtual const TkType &amp; getType() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_identifiable_html_a65dbac714ebfdc9f0a4d7a905bbbcdf4"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4">Nv::Blast::TkIdentifiable::userIntData</a></div><div class="ttdeci">uint64_t userIntData</div><div class="ttdef"><b>Definition:</b> NvBlastTkIdentifiable.h:77</div></div>
<div class="ttc" id="_nv_blast_tk_object_8h_html"><div class="ttname"><a href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a></div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_joint_8h_source.html b/docs/api_docs/files/_nv_blast_tk_joint_8h_source.html
index 999e0d3..78ce55c 100755
--- a/docs/api_docs/files/_nv_blast_tk_joint_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_joint_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_joint_8h_source.html','')
<div class="title">NvBlastTkJoint.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_joint_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896">actors</a>[2]; </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5"> 48</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5">chunkIndices</a>[2]; </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d"> 49</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d">attachPositions</a>[2]; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> getData() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKJOINT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint.html">Nv::Blast::TkJoint</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:63</div></div>
+<a href="_nv_blast_tk_joint_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896">actors</a>[2]; </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5"> 48</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5">chunkIndices</a>[2]; </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d"> 49</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d">attachPositions</a>[2]; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> getData() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKJOINT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint.html">Nv::Blast::TkJoint</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:63</div></div>
<div class="ttc" id="_nv_blast_tk_object_8h_html"><div class="ttname"><a href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_joint_data_html_abed941edd9f9d14c7dd8e25b4fa6d896"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896">Nv::Blast::TkJointData::actors</a></div><div class="ttdeci">TkActor * actors[2]</div><div class="ttdoc">The TkActor objects joined by the joint. </div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_object_8h_source.html b/docs/api_docs/files/_nv_blast_tk_object_8h_source.html
index 954c5d6..2354dca 100755
--- a/docs/api_docs/files/_nv_blast_tk_object_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_object_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_object_8h_source.html',''
<div class="title">NvBlastTkObject.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7">TkObject</a>() : <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>(nullptr) {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Object API</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a848b4a7ade17edc49a071c472cbfad12">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90"> 60</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90">~TkObject</a>() {}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42"> 68</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKOBJECT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html">Nv::Blast::TkObject</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:41</div></div>
+<a href="_nv_blast_tk_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7">TkObject</a>() : <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>(nullptr) {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Object API</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a848b4a7ade17edc49a071c472cbfad12">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90"> 60</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90">~TkObject</a>() {}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42"> 68</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKOBJECT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html">Nv::Blast::TkObject</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:41</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html_a04f1d2051fa4885ba934cf138f7c2b90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90">Nv::Blast::TkObject::~TkObject</a></div><div class="ttdeci">virtual ~TkObject()</div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:60</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html_a848b4a7ade17edc49a071c472cbfad12"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html#a848b4a7ade17edc49a071c472cbfad12">Nv::Blast::TkObject::release</a></div><div class="ttdeci">virtual void release()=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html_ae1a1d9f53d372a748f615fc47b730a42"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">Nv::Blast::TkObject::userData</a></div><div class="ttdeci">void * userData</div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:68</div></div>
diff --git a/docs/api_docs/files/_nv_blast_tk_type_8h_source.html b/docs/api_docs/files/_nv_blast_tk_type_8h_source.html
index d3a9bfa..620abce 100755
--- a/docs/api_docs/files/_nv_blast_tk_type_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_tk_type_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_type_8h_source.html','');
<div class="title">NvBlastTkType.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_type_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#af3d9ae44f5f8234e0ccf6027dcca40ab">getName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#ada004286c609b55824a712b518ddb23c">getVersion</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6"> 73</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">operator == </a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> &amp;type == <span class="keyword">this</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKTYPE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_aec7c0da2124e245c4e0ef01c3b7b54c6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">Nv::Blast::TkType::operator==</a></div><div class="ttdeci">bool operator==(const TkType &amp;type) const</div><div class="ttdef"><b>Definition:</b> NvBlastTkType.h:73</div></div>
+<a href="_nv_blast_tk_type_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#af3d9ae44f5f8234e0ccf6027dcca40ab">getName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#ada004286c609b55824a712b518ddb23c">getVersion</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6"> 73</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">operator == </a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> &amp;type == <span class="keyword">this</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKTYPE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_aec7c0da2124e245c4e0ef01c3b7b54c6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">Nv::Blast::TkType::operator==</a></div><div class="ttdeci">bool operator==(const TkType &amp;type) const</div><div class="ttdef"><b>Definition:</b> NvBlastTkType.h:73</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_af3d9ae44f5f8234e0ccf6027dcca40ab"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#af3d9ae44f5f8234e0ccf6027dcca40ab">Nv::Blast::TkType::getName</a></div><div class="ttdeci">virtual const char * getName() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_ada004286c609b55824a712b518ddb23c"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#ada004286c609b55824a712b518ddb23c">Nv::Blast::TkType::getVersion</a></div><div class="ttdeci">virtual uint32_t getVersion() const =0</div></div>
diff --git a/docs/api_docs/files/_nv_blast_types_8h_source.html b/docs/api_docs/files/_nv_blast_types_8h_source.html
index ac0228f..a05da15 100755
--- a/docs/api_docs/files/_nv_blast_types_8h_source.html
+++ b/docs/api_docs/files/_nv_blast_types_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_types_8h_source.html','');})
<div class="title">NvBlastTypes.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// NvBlast common types</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_message.html">NvBlastMessage</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce"> 47</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce">Type</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"> 49</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">Error</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07"> 50</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">Warning</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f"> 51</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">Info</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">Debug</a> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab"> 63</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a>)(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html"> 69</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8"> 71</a></span>&#160; <span class="keywordtype">char</span> data[16];</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef"> 87</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d"> 88</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00"> 89</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00">island</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307"> 90</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf"> 91</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648"> 103</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648">Type</a></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463"> 105</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463">AssetDataBlock</a>,</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb"> 106</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb">FamilyDataBlock</a>,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a4463e88093733032ed9751bcb753ec50"> 108</a></span>&#160; Count</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e"> 115</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e">dataType</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5"> 121</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5">formatVersion</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d"> 128</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d">size</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723"> 133</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723">reserved</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// NvBlastAsset related types</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html"> 152</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a3c8c4522d0fdde5d38f59509aa2333d2"> 157</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a"> 162</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a">volume</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f"> 167</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d"> 172</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719"> 177</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5"> 182</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5">userData</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html"> 189</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d"> 194</a></span>&#160; <span class="keywordtype">float</span> normal[3];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba"> 199</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba">area</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6"> 204</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7"> 209</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">userData</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;};</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html"> 244</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f"> 249</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f">nodeCount</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307"> 254</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307">chunkIndices</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57"> 263</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57">adjacencyPartition</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931"> 268</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931">adjacentNodeIndices</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a"> 273</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a">adjacentBondIndices</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;};</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset.html"> 286</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a> {};</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html"> 292</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b"> 294</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b">Flags</a></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba09ac7c50cd7a350095ee9680bb66547a"> 296</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba912c6007e1f18bab5eca228701183b3c"> 299</a></span>&#160; SupportFlag = (1 &lt;&lt; 0)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; };</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a7b187457f49dae02e48405b073e3c50b"> 303</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c"> 306</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c">volume</a>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9"> 309</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9">parentChunkIndex</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81"> 312</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81">flags</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e"> 315</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e">userData</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;};</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html"> 322</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21"> 325</a></span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a> <a class="code" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21">bond</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#a84e9141449f357a74e3e77b3464fb629"> 333</a></span>&#160; uint32_t chunkIndices[2];</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;};</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html"> 345</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88"> 348</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88">chunkCount</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7"> 351</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7">chunkDescs</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc">bondCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f"> 357</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f">bondDescs</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// NvBlastActor related types</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="struct_nv_blast_family.html"> 376</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a> {};</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor.html"> 387</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a> {};</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html"> 395</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1"> 400</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1">uniformInitialBondHealth</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d"> 406</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d">initialBondHealths</a>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b"> 411</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b">uniformInitialLowerSupportChunkHealth</a>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3"> 421</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3">initialSupportChunkHealths</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// Types used for damage and fracturing</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html"> 439</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5"> 441</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5">userdata</a>; </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee"> 442</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee">chunkIndex</a>; </div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f"> 443</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f">health</a>; </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;};</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html"> 453</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91"> 455</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91">userdata</a>; </div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489"> 456</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489">nodeIndex0</a>; </div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949"> 457</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949">nodeIndex1</a>; </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2"> 458</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2">health</a>; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;};</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html"> 468</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356"> 470</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356">bondFractureCount</a>; </div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307"> 471</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307">chunkFractureCount</a>; </div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837"> 472</a></span>&#160; <a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837">bondFractures</a>; </div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc"> 473</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc">chunkFractures</a>; </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;};</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html"> 481</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;{</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a"> 483</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a">deletedActor</a>; </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7"> 484</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** <a class="code" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7">newActors</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;};</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html"> 491</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b"> 493</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b">actorIndex</a>; </div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7"> 494</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7">graphNodeCount</a>; </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9"> 495</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9">assetNodeCount</a>; </div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e"> 496</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e">firstGraphNodeIndex</a>; </div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51"> 497</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51">graphNodeIndexLinks</a>; </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa"> 498</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa">chunkIndices</a>; </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9"> 499</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9">adjacencyPartition</a>; </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf"> 500</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf">adjacentNodeIndices</a>; </div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3"> 501</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3">adjacentBondIndices</a>; </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe"> 502</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe">assetBonds</a>; </div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40"> 503</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40">assetChunks</a>; </div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390"> 504</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390">familyBondHealths</a>; </div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26"> 505</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26">supportChunkHealths</a>; </div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec"> 506</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec">nodeActorIndices</a>; </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;};</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html"> 513</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431"> 515</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431">chunkIndex</a>; </div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703"> 516</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703">assetChunks</a>; </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;};</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a"> 545</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918"> 573</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html"> 584</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;{</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e"> 586</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e">graphShaderFunction</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc"> 587</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc">subgraphShaderFunction</a>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;};</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTYPES_H</span></div><div class="ttc" id="struct_nv_blast_bond_html_a4e131a735184d74e611b9b40a368edd7"><div class="ttname"><a href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">NvBlastBond::userData</a></div><div class="ttdeci">uint32_t userData</div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:209</div></div>
+<a href="_nv_blast_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// NvBlast common types</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_message.html">NvBlastMessage</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce"> 47</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce">Type</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"> 49</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">Error</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07"> 50</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">Warning</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f"> 51</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">Info</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">Debug</a> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab"> 63</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a>)(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html"> 69</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8"> 71</a></span>&#160; <span class="keywordtype">char</span> data[16];</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef"> 87</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d"> 88</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00"> 89</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00">island</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307"> 90</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf"> 91</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648"> 103</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648">Type</a></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463"> 105</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463">AssetDataBlock</a>,</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb"> 106</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb">FamilyDataBlock</a>,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a4463e88093733032ed9751bcb753ec50"> 108</a></span>&#160; Count</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e"> 115</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e">dataType</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5"> 121</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5">formatVersion</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d"> 128</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d">size</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723"> 133</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723">reserved</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// NvBlastAsset related types</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html"> 152</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a3c8c4522d0fdde5d38f59509aa2333d2"> 157</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a"> 162</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a">volume</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f"> 167</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d"> 172</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719"> 177</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5"> 182</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5">userData</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html"> 189</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d"> 194</a></span>&#160; <span class="keywordtype">float</span> normal[3];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba"> 199</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba">area</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6"> 204</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7"> 209</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">userData</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;};</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html"> 244</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f"> 249</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f">nodeCount</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307"> 254</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307">chunkIndices</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57"> 263</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57">adjacencyPartition</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931"> 268</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931">adjacentNodeIndices</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a"> 273</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a">adjacentBondIndices</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;};</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset.html"> 286</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a> {};</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html"> 292</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b"> 294</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b">Flags</a></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba09ac7c50cd7a350095ee9680bb66547a"> 296</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba912c6007e1f18bab5eca228701183b3c"> 299</a></span>&#160; SupportFlag = (1 &lt;&lt; 0)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; };</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a7b187457f49dae02e48405b073e3c50b"> 303</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c"> 306</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c">volume</a>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9"> 309</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9">parentChunkIndex</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81"> 312</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81">flags</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e"> 315</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e">userData</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;};</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html"> 322</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21"> 325</a></span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a> <a class="code" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21">bond</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#a84e9141449f357a74e3e77b3464fb629"> 333</a></span>&#160; uint32_t chunkIndices[2];</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;};</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html"> 345</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88"> 348</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88">chunkCount</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7"> 351</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7">chunkDescs</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc">bondCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f"> 357</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f">bondDescs</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// NvBlastActor related types</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="struct_nv_blast_family.html"> 376</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a> {};</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor.html"> 387</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a> {};</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html"> 395</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1"> 400</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1">uniformInitialBondHealth</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d"> 406</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d">initialBondHealths</a>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b"> 411</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b">uniformInitialLowerSupportChunkHealth</a>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3"> 421</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3">initialSupportChunkHealths</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// Types used for damage and fracturing</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html"> 439</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5"> 441</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5">userdata</a>; </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee"> 442</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee">chunkIndex</a>; </div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f"> 443</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f">health</a>; </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;};</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html"> 453</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91"> 455</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91">userdata</a>; </div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489"> 456</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489">nodeIndex0</a>; </div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949"> 457</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949">nodeIndex1</a>; </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2"> 458</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2">health</a>; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;};</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html"> 468</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356"> 470</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356">bondFractureCount</a>; </div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307"> 471</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307">chunkFractureCount</a>; </div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837"> 472</a></span>&#160; <a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837">bondFractures</a>; </div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc"> 473</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc">chunkFractures</a>; </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;};</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html"> 481</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;{</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a"> 483</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a">deletedActor</a>; </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7"> 484</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** <a class="code" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7">newActors</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;};</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html"> 491</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b"> 493</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b">actorIndex</a>; </div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7"> 494</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7">graphNodeCount</a>; </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9"> 495</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9">assetNodeCount</a>; </div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e"> 496</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e">firstGraphNodeIndex</a>; </div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51"> 497</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51">graphNodeIndexLinks</a>; </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa"> 498</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa">chunkIndices</a>; </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9"> 499</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9">adjacencyPartition</a>; </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf"> 500</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf">adjacentNodeIndices</a>; </div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3"> 501</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3">adjacentBondIndices</a>; </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe"> 502</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe">assetBonds</a>; </div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40"> 503</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40">assetChunks</a>; </div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390"> 504</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390">familyBondHealths</a>; </div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26"> 505</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26">supportChunkHealths</a>; </div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec"> 506</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec">nodeActorIndices</a>; </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;};</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html"> 513</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431"> 515</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431">chunkIndex</a>; </div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703"> 516</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703">assetChunks</a>; </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;};</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a"> 545</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918"> 573</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html"> 584</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;{</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e"> 586</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e">graphShaderFunction</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc"> 587</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc">subgraphShaderFunction</a>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;};</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTYPES_H</span></div><div class="ttc" id="struct_nv_blast_bond_html_a4e131a735184d74e611b9b40a368edd7"><div class="ttname"><a href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">NvBlastBond::userData</a></div><div class="ttdeci">uint32_t userData</div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:209</div></div>
<div class="ttc" id="struct_nv_blast_message_html_aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"><div class="ttname"><a href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a></div><div class="ttdoc">Error messages. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:49</div></div>
<div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
diff --git a/docs/api_docs/files/_nv_c_types_8h_source.html b/docs/api_docs/files/_nv_c_types_8h_source.html
index 578a69c..79225a4 100755
--- a/docs/api_docs/files/_nv_c_types_8h_source.html
+++ b/docs/api_docs/files/_nv_c_types_8h_source.html
@@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_c_types_8h_source.html','');});
<div class="title">NvCTypes.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_c_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef NV_C_TYPES_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define NV_C_TYPES_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef _INTPTR</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define _INTPTR 0</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html"> 43</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63"> 45</a></span>&#160; <span class="keywordtype">float</span> x, <a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;} <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html"> 49</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7"> 51</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html"> 55</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd"> 57</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">z</a>, w;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;} <a class="code" href="struct_nvc_vec4.html">NvcVec4</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html"> 61</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a"> 63</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a">z</a>, w;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="struct_nvc_quat.html">NvcQuat</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html"> 67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0"> 69</a></span>&#160; <a class="code" href="struct_nvc_quat.html">NvcQuat</a> <a class="code" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0">q</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280"> 70</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280">p</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <a class="code" href="struct_nvc_transform.html">NvcTransform</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html"> 74</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778"> 76</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, column2, <a class="code" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778">column3</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <a class="code" href="struct_nvc_mat34.html">NvcMat34</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html"> 80</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce"> 82</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, <a class="code" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce">column2</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <a class="code" href="struct_nvc_mat33.html">NvcMat33</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html"> 86</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0"> 88</a></span>&#160; <a class="code" href="struct_nvc_vec4.html">NvcVec4</a> column0, column1, column2, <a class="code" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0">column3</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} <a class="code" href="struct_nvc_mat44.html">NvcMat44</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html"> 92</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859"> 94</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859">minimum</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23"> 95</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23">maximum</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html"> 99</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486">n</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2"> 102</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2">d</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <a class="code" href="struct_nvc_plane.html">NvcPlane</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html"> 106</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c"> 108</a></span>&#160; int32_t x, <a class="code" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c">y</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;} <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html"> 112</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc"> 114</a></span>&#160; int32_t x, y, <a class="code" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc">z</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="struct_nvc_vec3i.html">NvcVec3i</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html"> 118</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1"> 120</a></span>&#160; int32_t x, y, <a class="code" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1">z</a>, w;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} <a class="code" href="struct_nvc_vec4i.html">NvcVec4i</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif // NV_C_TYPES_H</span></div><div class="ttc" id="struct_nvc_vec4_html_aae50c9e5c15841df0b2a8c181961a4dd"><div class="ttname"><a href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">NvcVec4::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:57</div></div>
+<a href="_nv_c_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef NV_C_TYPES_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define NV_C_TYPES_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;NvPreprocessor.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef _INTPTR</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define _INTPTR 0</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html"> 43</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63"> 45</a></span>&#160; <span class="keywordtype">float</span> x, <a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;} <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html"> 49</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7"> 51</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html"> 55</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd"> 57</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">z</a>, w;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;} <a class="code" href="struct_nvc_vec4.html">NvcVec4</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html"> 61</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a"> 63</a></span>&#160; <span class="keywordtype">float</span> x, y, <a class="code" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a">z</a>, w;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="struct_nvc_quat.html">NvcQuat</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html"> 67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0"> 69</a></span>&#160; <a class="code" href="struct_nvc_quat.html">NvcQuat</a> <a class="code" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0">q</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280"> 70</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280">p</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <a class="code" href="struct_nvc_transform.html">NvcTransform</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html"> 74</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778"> 76</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, column2, <a class="code" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778">column3</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <a class="code" href="struct_nvc_mat34.html">NvcMat34</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html"> 80</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce"> 82</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, <a class="code" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce">column2</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <a class="code" href="struct_nvc_mat33.html">NvcMat33</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html"> 86</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0"> 88</a></span>&#160; <a class="code" href="struct_nvc_vec4.html">NvcVec4</a> column0, column1, column2, <a class="code" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0">column3</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} <a class="code" href="struct_nvc_mat44.html">NvcMat44</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html"> 92</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859"> 94</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859">minimum</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23"> 95</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23">maximum</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html"> 99</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486">n</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2"> 102</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2">d</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <a class="code" href="struct_nvc_plane.html">NvcPlane</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html"> 106</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c"> 108</a></span>&#160; int32_t x, <a class="code" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c">y</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;} <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html"> 112</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc"> 114</a></span>&#160; int32_t x, y, <a class="code" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc">z</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="struct_nvc_vec3i.html">NvcVec3i</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html"> 118</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1"> 120</a></span>&#160; int32_t x, y, <a class="code" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1">z</a>, w;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} <a class="code" href="struct_nvc_vec4i.html">NvcVec4i</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif // NV_C_TYPES_H</span></div><div class="ttc" id="struct_nvc_vec4_html_aae50c9e5c15841df0b2a8c181961a4dd"><div class="ttname"><a href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">NvcVec4::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:57</div></div>
<div class="ttc" id="struct_nvc_mat34_html"><div class="ttname"><a href="struct_nvc_mat34.html">NvcMat34</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:74</div></div>
<div class="ttc" id="struct_nvc_vec3i_html_a9337421c8401fa535ba403135b5244cc"><div class="ttname"><a href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc">NvcVec3i::z</a></div><div class="ttdeci">int32_t z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:114</div></div>
<div class="ttc" id="struct_nvc_vec4_html"><div class="ttname"><a href="struct_nvc_vec4.html">NvcVec4</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:55</div></div>
diff --git a/docs/api_docs/files/pagereleasenotes.html b/docs/api_docs/files/pagereleasenotes.html
index 902a22e..f60100a 100755
--- a/docs/api_docs/files/pagereleasenotes.html
+++ b/docs/api_docs/files/pagereleasenotes.html
@@ -24,6 +24,15 @@
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+Blast(tm) SDK 1.1.7 (06-Nov-2020)
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+Changes
+-------
+* (Pull request #17 "Physx4 compatibility") PhysX version updated to 4.1.trunk.26400730, which uses a seprarate PxShared package
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1.6 (08-Oct-2020)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/docs/release_notes.txt b/docs/release_notes.txt
index f1a8511..aa8a64c 100755
--- a/docs/release_notes.txt
+++ b/docs/release_notes.txt
@@ -3,6 +3,15 @@
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+Blast(tm) SDK 1.1.7 (06-Nov-2020)
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+Changes
+-------
+* (Pull request #17 "Physx4 compatibility") PhysX version updated to 4.1.trunk.26400730, which uses a seprarate PxShared package
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Blast(tm) SDK 1.1.6 (08-Oct-2020)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/docs/source_docs/files/_asset_d_t_o_8h_source.html b/docs/source_docs/files/_asset_d_t_o_8h_source.html
index ec2aaf1..f954543 100755
--- a/docs/source_docs/files/_asset_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_asset_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_asset_d_t_o_8h_source.html','');});
<div class="title">AssetDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_asset_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(Asset, <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Nv::Blast::Asset</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_asset.html">Nv::Blast::Serialization::Asset</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_asset_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(Asset, <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Nv::Blast::Asset</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_asset.html">Nv::Blast::Serialization::Asset</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="_nv_blast_ext_ll_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8capn_8h.html">NvBlastExtLlSerialization.capn.h</a></div></div>
<div class="ttc" id="_nv_blast_asset_8h_html"><div class="ttname"><a href="_nv_blast_asset_8h.html">NvBlastAsset.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_asset_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_asset.html">Nv::Blast::Serialization::Asset</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtLlSerialization.capn.h:37</div></div>
diff --git a/docs/source_docs/files/_d_t_o_macros_8h_source.html b/docs/source_docs/files/_d_t_o_macros_8h_source.html
index 3244318..b17605f 100755
--- a/docs/source_docs/files/_d_t_o_macros_8h_source.html
+++ b/docs/source_docs/files/_d_t_o_macros_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_d_t_o_macros_8h_source.html','');});
<div class="title">DTOMacros.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_d_t_o_macros_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8"> 31</a></span>&#160;<span class="preprocessor">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER) \</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">namespace Nv { \</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">namespace Blast { \</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">class _NAME ## DTO \</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">public: \</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> static bool serialize(_SERIALIZER::Builder builder, const _POCO * poco); \</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> static _POCO* deserialize(_SERIALIZER::Reader reader); \</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> static bool deserializeInto(_SERIALIZER::Reader reader, _POCO * poco); \</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">}; \</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">}</span></div></div><!-- fragment --></div><!-- contents -->
+<a href="_d_t_o_macros_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8"> 31</a></span>&#160;<span class="preprocessor">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER) \</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">namespace Nv { \</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">namespace Blast { \</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">class _NAME ## DTO \</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">public: \</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> static bool serialize(_SERIALIZER::Builder builder, const _POCO * poco); \</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> static _POCO* deserialize(_SERIALIZER::Reader reader); \</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> static bool deserializeInto(_SERIALIZER::Reader reader, _POCO * poco); \</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">}; \</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">}</span></div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div class="footer">
diff --git a/docs/source_docs/files/_ext_px_asset_d_t_o_8h_source.html b/docs/source_docs/files/_ext_px_asset_d_t_o_8h_source.html
index c95a4b2..9f84e40 100755
--- a/docs/source_docs/files/_ext_px_asset_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_ext_px_asset_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_ext_px_asset_d_t_o_8h_source.html',''
<div class="title">ExtPxAssetDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_ext_px_asset_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_bond_d_t_o_8h.html">NvBlastBondDTO.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(ExtPxAsset, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_ext_px_asset.html">Nv::Blast::Serialization::ExtPxAsset</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_ext_px_asset_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_bond_d_t_o_8h.html">NvBlastBondDTO.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(ExtPxAsset, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_ext_px_asset.html">Nv::Blast::Serialization::ExtPxAsset</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:123</div></div>
diff --git a/docs/source_docs/files/_ext_px_chunk_d_t_o_8h_source.html b/docs/source_docs/files/_ext_px_chunk_d_t_o_8h_source.html
index 9c1f483..a3384cf 100755
--- a/docs/source_docs/files/_ext_px_chunk_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_ext_px_chunk_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_ext_px_chunk_d_t_o_8h_source.html',''
<div class="title">ExtPxChunkDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_ext_px_chunk_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(ExtPxChunk, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk.html">Nv::Blast::Serialization::ExtPxChunk</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_ext_px_chunk_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(ExtPxChunk, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk.html">Nv::Blast::Serialization::ExtPxChunk</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_chunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:110</div></div>
<div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
diff --git a/docs/source_docs/files/_ext_px_subchunk_d_t_o_8h_source.html b/docs/source_docs/files/_ext_px_subchunk_d_t_o_8h_source.html
index f8de95d..5ce51ea 100755
--- a/docs/source_docs/files/_ext_px_subchunk_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_ext_px_subchunk_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_ext_px_subchunk_d_t_o_8h_source.html'
<div class="title">ExtPxSubchunkDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_ext_px_subchunk_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(ExtPxSubchunk, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">Nv::Blast::ExtPxSubchunk</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_ext_px_subchunk.html">Nv::Blast::Serialization::ExtPxSubchunk</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_ext_px_subchunk_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(ExtPxSubchunk, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">Nv::Blast::ExtPxSubchunk</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_ext_px_subchunk.html">Nv::Blast::Serialization::ExtPxSubchunk</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_subchunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">Nv::Blast::ExtPxSubchunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:98</div></div>
<div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_8h_source.html b/docs/source_docs/files/_nv_blast_8h_source.html
index ddd7aee..881a4f1 100755
--- a/docs/source_docs/files/_nv_blast_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_8h_source.html','');});
<div class="title">NvBlast.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLAST_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLAST_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// NvBlastAsset functions</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#ae687468738abd4123fc89b3e4109a995">NvBlastGetAssetMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a3ea41c9a21d5572dbd8189660e18be95">NvBlastGetRequiredScratchForCreateAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#adfed06b95f7c465681e3b3f87b60d1fb">NvBlastCreateAsset</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a8499eb2df3a5b53e71f2004a61b2a06f">NvBlastAssetGetFamilyMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#abc40350d116a07bcd0f7747acdf49c5a">NvBlastAssetCreateFamily</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#a0ccedb5841c20bebe9d39aae5aee56d7">NvBlastAssetGetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#aa6a3c5bb082495c5c48ce9ad0f6e80d9">NvBlastAssetSetID</a>(<a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a5797bde811db1c3562bbe5d3f36f6130">NvBlastAssetGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a88c03cb76de47b559441487b6f90ff67">NvBlastAssetGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a51a2437f662febe3ad277602115aa26c">NvBlastAssetGetChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af0c1ab7b2b5f9daab051d2df10fcb03c">NvBlastAssetGetSupportChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a8a75456d6b1fd43257a374b9317ad7d7">NvBlastAssetGetLeafChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a1e866b60b08d7e765e2c56be8a06e438">NvBlastAssetGetFirstSubsupportChunkIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a6ae69c8059e5d0dc7b771279109a792e">NvBlastAssetGetBondCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> <a class="code" href="_nv_blast_8h.html#ae11a0d11aefb7b7a1e0b57cb8b5b2e7b">NvBlastAssetGetSupportGraph</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> uint32_t* <a class="code" href="_nv_blast_8h.html#a33aefb397327a574fff73de7060adac0">NvBlastAssetGetChunkToGraphNodeMap</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="_nv_blast_8h.html#aa8e719d16e9e4bc70afdcad1aaf2b070">NvBlastAssetGetChunks</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="_nv_blast_8h.html#a112afc8391b220b8947cbd003bcae67a">NvBlastAssetGetBonds</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ab5c08bfc967cf0a532a1c1d80cb60558">NvBlastAssetGetActorSerializationSizeUpperBound</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// NvBlastAsset helper functions</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ab86bb2afd5952d3c7c365e8162a0879b">NvBlastEnsureAssetExactSupportCoverage</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a1ad7e0c2e8685aeee34fc08c9d55e9f7">NvBlastBuildAssetDescChunkReorderMap</a>(uint32_t* chunkReorderMap, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#acd731f119f9107a644167a14209c03f3">NvBlastApplyAssetDescChunkReorderMap</a></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;(</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* reorderedChunkDescs,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a94fd6269d5b3142d4035ae7e049b96b0">NvBlastApplyAssetDescChunkReorderMapInPlace</a></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;(</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a0784e238a54e3cc64c4784ae8579a696">NvBlastReorderAssetDescChunks</a></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;(</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// NvBlastFamily functions</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a64a3e89b0d917304c7ef999819ca2e74">NvBlastFamilyGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#a2fe3aec856668a6a8691d9505f43f60f">NvBlastFamilyGetAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#abba1ed3118be03040e0cd99bf3180ddf">NvBlastFamilySetAsset</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ad9e290cc28e0d2d78624515e4a780091">NvBlastFamilyGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#a3ccdaabdd9a51a9882a03bc8f72d9106">NvBlastFamilyGetAssetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a9253b7ab7f59f9ef5a604cc08bc23878">NvBlastFamilyGetRequiredScratchForCreateFirstActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#ab7ecca70eb3de1854f5fe0baecebf23f">NvBlastFamilyCreateFirstActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af5afdfa868ba73c0dcde587633348e80">NvBlastFamilyGetActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#af77263b30631016c45d852a463c33fcb">NvBlastFamilyDeserializeActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ae24d3c471176690a4fcd58453e697811">NvBlastFamilyGetActors</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actors, uint32_t actorsSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a6d9f94752fd13a6a709b853899ade332">NvBlastFamilyGetChunkActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, uint32_t chunkIndex, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aae6f08d1b81107160a6ba39a4496b435">NvBlastFamilyGetMaxActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment">// NvBlastActor accessor, serialization, and deactivation functions</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ab103c80c01c2a4baeece9316bfcfc140">NvBlastActorGetVisibleChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af04e1c60f327da97f1fbbc41e8c618f9">NvBlastActorGetVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aec37b629f83ac2586e9edeb78f825e5c">NvBlastActorGetGraphNodeCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a8c68e7844b84555aa74fa950d57469f1">NvBlastActorGetGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="_nv_blast_8h.html#a9d01e16dc02bed206adef7fcbf5935f0">NvBlastActorGetBondHealths</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a32618a9eaafe25af758e4ffa33f36603">NvBlastActorGetSerializationSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ada0d2f72c83e2c2357ba8e93e5a3986e">NvBlastActorSerialize</a>(<span class="keywordtype">void</span>* buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#a245ad453eda4f0102b5617f4edff9b66">NvBlastActorGetFamily</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a0b985e47f17306b7457a995fb1fc77cc">NvBlastActorGetIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a2293c45fd57fbe7cb448a849151907cf">NvBlastActorDeactivate</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">// NvBlastActor damage and fracturing functions</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#abefb2480ab1985d6fed58583050d57d2">NvBlastActorGenerateFracture</a></div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;(</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers,</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> program, </div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams,</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, </div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a88efac48b308c27be2742ed601bcb32f">NvBlastActorApplyFracture</a></div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;(</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers,</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#accc0bb617daadd4554cb2224559a4dfc">NvBlastActorSplit</a></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;(</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a>* result, </div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; uint32_t newActorsMaxCount,</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a66450acf095adeadc70d2a478c9ab2d1">NvBlastActorGetRequiredScratchForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a95a908aa7b6e14e1ed881bf3cfe810d6">NvBlastActorGetMaxActorCountForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a20bf7daebbc3804766c32fd6bd624a07">NvBlastActorCanFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a8b330a0a7b654dfaa0c35f4c396a781e">NvBlastActorIsSplitRequired</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#add7f66f53ab03e71eeeebaee7dec12b2">NvBlastActorIsBoundToWorld</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment">// NvBlastTimers functions and helpers</span></div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a6a8135e333b2e84e418aa36fe0d4fcfa">NvBlastTimersReset</a>(<a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">double</span> <a class="code" href="_nv_blast_8h.html#af06455f44aff50a4f80ee39f2eb0be2a">NvBlastTicksToSeconds</a>(int64_t ticks);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="preprocessor">#endif // ifndef NVBLAST_H</span></div><div class="ttc" id="_nv_blast_8h_html_ad9e290cc28e0d2d78624515e4a780091"><div class="ttname"><a href="_nv_blast_8h.html#ad9e290cc28e0d2d78624515e4a780091">NvBlastFamilyGetSize</a></div><div class="ttdeci">NVBLAST_API uint32_t NvBlastFamilyGetSize(const NvBlastFamily *family, NvBlastLog logFn)</div></div>
+<a href="_nv_blast_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLAST_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLAST_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// NvBlastAsset functions</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#ae687468738abd4123fc89b3e4109a995">NvBlastGetAssetMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a3ea41c9a21d5572dbd8189660e18be95">NvBlastGetRequiredScratchForCreateAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#adfed06b95f7c465681e3b3f87b60d1fb">NvBlastCreateAsset</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a8499eb2df3a5b53e71f2004a61b2a06f">NvBlastAssetGetFamilyMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#abc40350d116a07bcd0f7747acdf49c5a">NvBlastAssetCreateFamily</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#a0ccedb5841c20bebe9d39aae5aee56d7">NvBlastAssetGetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#aa6a3c5bb082495c5c48ce9ad0f6e80d9">NvBlastAssetSetID</a>(<a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a5797bde811db1c3562bbe5d3f36f6130">NvBlastAssetGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a88c03cb76de47b559441487b6f90ff67">NvBlastAssetGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a51a2437f662febe3ad277602115aa26c">NvBlastAssetGetChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af0c1ab7b2b5f9daab051d2df10fcb03c">NvBlastAssetGetSupportChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a8a75456d6b1fd43257a374b9317ad7d7">NvBlastAssetGetLeafChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a1e866b60b08d7e765e2c56be8a06e438">NvBlastAssetGetFirstSubsupportChunkIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a6ae69c8059e5d0dc7b771279109a792e">NvBlastAssetGetBondCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> <a class="code" href="_nv_blast_8h.html#ae11a0d11aefb7b7a1e0b57cb8b5b2e7b">NvBlastAssetGetSupportGraph</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> uint32_t* <a class="code" href="_nv_blast_8h.html#a33aefb397327a574fff73de7060adac0">NvBlastAssetGetChunkToGraphNodeMap</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="_nv_blast_8h.html#aa8e719d16e9e4bc70afdcad1aaf2b070">NvBlastAssetGetChunks</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="_nv_blast_8h.html#a112afc8391b220b8947cbd003bcae67a">NvBlastAssetGetBonds</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ab5c08bfc967cf0a532a1c1d80cb60558">NvBlastAssetGetActorSerializationSizeUpperBound</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// NvBlastAsset helper functions</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#ab86bb2afd5952d3c7c365e8162a0879b">NvBlastEnsureAssetExactSupportCoverage</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a1ad7e0c2e8685aeee34fc08c9d55e9f7">NvBlastBuildAssetDescChunkReorderMap</a>(uint32_t* chunkReorderMap, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#acd731f119f9107a644167a14209c03f3">NvBlastApplyAssetDescChunkReorderMap</a></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;(</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* reorderedChunkDescs,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a94fd6269d5b3142d4035ae7e049b96b0">NvBlastApplyAssetDescChunkReorderMapInPlace</a></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;(</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> uint32_t* chunkReorderMap,</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a0784e238a54e3cc64c4784ae8579a696">NvBlastReorderAssetDescChunks</a></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;(</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint32_t chunkCount,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint32_t bondCount,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">bool</span> keepBondNormalChunkOrder,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// NvBlastFamily functions</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a64a3e89b0d917304c7ef999819ca2e74">NvBlastFamilyGetFormatVersion</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_8h.html#a2fe3aec856668a6a8691d9505f43f60f">NvBlastFamilyGetAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#abba1ed3118be03040e0cd99bf3180ddf">NvBlastFamilySetAsset</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ad9e290cc28e0d2d78624515e4a780091">NvBlastFamilyGetSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="_nv_blast_8h.html#a3ccdaabdd9a51a9882a03bc8f72d9106">NvBlastFamilyGetAssetID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a9253b7ab7f59f9ef5a604cc08bc23878">NvBlastFamilyGetRequiredScratchForCreateFirstActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#ab7ecca70eb3de1854f5fe0baecebf23f">NvBlastFamilyCreateFirstActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af5afdfa868ba73c0dcde587633348e80">NvBlastFamilyGetActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#af77263b30631016c45d852a463c33fcb">NvBlastFamilyDeserializeActor</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ae24d3c471176690a4fcd58453e697811">NvBlastFamilyGetActors</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actors, uint32_t actorsSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="_nv_blast_8h.html#a6d9f94752fd13a6a709b853899ade332">NvBlastFamilyGetChunkActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, uint32_t chunkIndex, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aae6f08d1b81107160a6ba39a4496b435">NvBlastFamilyGetMaxActorCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment">// NvBlastActor accessor, serialization, and deactivation functions</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ab103c80c01c2a4baeece9316bfcfc140">NvBlastActorGetVisibleChunkCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#af04e1c60f327da97f1fbbc41e8c618f9">NvBlastActorGetVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#aec37b629f83ac2586e9edeb78f825e5c">NvBlastActorGetGraphNodeCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a8c68e7844b84555aa74fa950d57469f1">NvBlastActorGetGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="_nv_blast_8h.html#a9d01e16dc02bed206adef7fcbf5935f0">NvBlastActorGetBondHealths</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a32618a9eaafe25af758e4ffa33f36603">NvBlastActorGetSerializationSize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#ada0d2f72c83e2c2357ba8e93e5a3986e">NvBlastActorSerialize</a>(<span class="keywordtype">void</span>* buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="_nv_blast_8h.html#a245ad453eda4f0102b5617f4edff9b66">NvBlastActorGetFamily</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a0b985e47f17306b7457a995fb1fc77cc">NvBlastActorGetIndex</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a2293c45fd57fbe7cb448a849151907cf">NvBlastActorDeactivate</a>(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">// NvBlastActor damage and fracturing functions</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#abefb2480ab1985d6fed58583050d57d2">NvBlastActorGenerateFracture</a></div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;(</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers,</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> program, </div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams,</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, </div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a88efac48b308c27be2742ed601bcb32f">NvBlastActorApplyFracture</a></div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;(</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers,</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#accc0bb617daadd4554cb2224559a4dfc">NvBlastActorSplit</a></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;(</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a>* result, </div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor,</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; uint32_t newActorsMaxCount,</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordtype">void</span>* scratch,</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn,</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_8h.html#a66450acf095adeadc70d2a478c9ab2d1">NvBlastActorGetRequiredScratchForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_8h.html#a95a908aa7b6e14e1ed881bf3cfe810d6">NvBlastActorGetMaxActorCountForSplit</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a20bf7daebbc3804766c32fd6bd624a07">NvBlastActorCanFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#a8b330a0a7b654dfaa0c35f4c396a781e">NvBlastActorIsSplitRequired</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">bool</span> <a class="code" href="_nv_blast_8h.html#add7f66f53ab03e71eeeebaee7dec12b2">NvBlastActorIsBoundToWorld</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment">// NvBlastTimers functions and helpers</span></div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_8h.html#a6a8135e333b2e84e418aa36fe0d4fcfa">NvBlastTimersReset</a>(<a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">double</span> <a class="code" href="_nv_blast_8h.html#af06455f44aff50a4f80ee39f2eb0be2a">NvBlastTicksToSeconds</a>(int64_t ticks);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="preprocessor">#endif // ifndef NVBLAST_H</span></div><div class="ttc" id="_nv_blast_8h_html_ad9e290cc28e0d2d78624515e4a780091"><div class="ttname"><a href="_nv_blast_8h.html#ad9e290cc28e0d2d78624515e4a780091">NvBlastFamilyGetSize</a></div><div class="ttdeci">NVBLAST_API uint32_t NvBlastFamilyGetSize(const NvBlastFamily *family, NvBlastLog logFn)</div></div>
<div class="ttc" id="_nv_blast_8h_html_a0784e238a54e3cc64c4784ae8579a696"><div class="ttname"><a href="_nv_blast_8h.html#a0784e238a54e3cc64c4784ae8579a696">NvBlastReorderAssetDescChunks</a></div><div class="ttdeci">NVBLAST_API bool NvBlastReorderAssetDescChunks(NvBlastChunkDesc *chunkDescs, uint32_t chunkCount, NvBlastBondDesc *bondDescs, uint32_t bondCount, uint32_t *chunkReorderMap, bool keepBondNormalChunkOrder, void *scratch, NvBlastLog logFn)</div></div>
<div class="ttc" id="_nv_blast_8h_html_a5797bde811db1c3562bbe5d3f36f6130"><div class="ttname"><a href="_nv_blast_8h.html#a5797bde811db1c3562bbe5d3f36f6130">NvBlastAssetGetFormatVersion</a></div><div class="ttdeci">NVBLAST_API uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset *asset, NvBlastLog logFn)</div></div>
<div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
diff --git a/docs/source_docs/files/_nv_blast_actor_8h_source.html b/docs/source_docs/files/_nv_blast_actor_8h_source.html
index 339d3a7..e56a136 100755
--- a/docs/source_docs/files/_nv_blast_actor_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_actor_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_actor_8h_source.html','');})
<div class="title">NvBlastActor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_iterator_base_8h.html">NvBlastIteratorBase.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_support_graph_8h.html">NvBlastSupportGraph.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_family_graph_8h.html">NvBlastFamilyGraph.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_internal_8h.html">NvBlastPreprocessorInternal.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>FamilyGraph;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">struct </span>FamilyHeader;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ae80652887c7949e9bf5692fa06a1efa6"> 60</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">void</span> updateVisibleChunksFromSupportChunk&lt;&gt;(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>*, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>*, uint32_t*, uint32_t, uint32_t, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>*, uint32_t);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a49fd726e45168bd756e564cfaac6e356"> 65</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a49fd726e45168bd756e564cfaac6e356">Actor</a>() : m_familyOffset(0), m_firstVisibleChunkIndex(<a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>), m_visibleChunkCount(0), m_firstGraphNodeIndex(<a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>), m_graphNodeCount(0), m_leafChunkCount(0) {}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aafeee48f4aa06696096f5400d7d825d6">isSubSupportChunk</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8">isSingleSupportChunk</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a50fa5ae538ce64ac6739ef1a33d1c0da">getVisibleChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba">getFirstVisibleChunkIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c">getGraphNodeCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#afb3f0d84eeb5571142458e977fbd38cb">getLeafChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7a88dca14c79ffff918aafdd840e9587">getFirstGraphNodeIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">getFirstSubsupportChunkIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">getFamilyGraph</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; NvBlastChunk* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b">getChunks</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a262c308e634a6fc9feed396572ca8bcc">getBonds</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681">getLowerSupportChunkHealths</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a2a26a08388a39786561c638553922222">getSubsupportChunkHealths</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a9ca8fa81a8b5cf3a3f7beb04fc0bf7c4">getBondHealths</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e">getGraphNodeIndexLinks</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html"> 233</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html">VisibleChunkIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a>&lt;uint32_t&gt;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html#ab1f6af40bccc777544406eec6c41ee7b">VisibleChunkIt</a>(<span class="keyword">const</span> Actor&amp; actor);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; };</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html"> 253</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html">GraphNodeIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a>&lt;uint32_t&gt;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html">GraphNodeIt</a>(<span class="keyword">const</span> Actor&amp; actor);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">static</span> Actor* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a307ec3c8c73cb706ec153bd63baee7c4">create</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3082322754cba457f678e567b288fe02">createRequiredScratch</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">static</span> Actor* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#acc84f6ae1ee76cf23b15898d2ba23721">deserialize</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a45de7eb2aac2759dd5ec5ef64bcfc6d0">serialize</a>(<span class="keywordtype">void</span>* buffer, uint32_t bufferSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn) <span class="keyword">const</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a77bba44beb744d8cb6250b6590602746">serializationRequiredStorage</a>(<a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn) <span class="keyword">const</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad8552a04fa6cdb1f3a01d11d18209e5a">release</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a69ff1bc362bb56b837ecfed98e94f087">generateFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers) <span class="keyword">const</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ae51f1cdc7a63ab67823d7cd08552d2">damageBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1, <span class="keywordtype">float</span> healthDamage);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ae51f1cdc7a63ab67823d7cd08552d2">damageBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1, uint32_t bondIndex, <span class="keywordtype">float</span> healthDamage);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ae51f1cdc7a63ab67823d7cd08552d2">damageBond</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a>&amp; cmd);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#acc3bf3a166faa14d058d8ef505228221">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7a34c8b6f62bc42fdae2a448f94d255b">splitRequiredScratch</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aecab306397e048f4f46440d4879ba879">split</a>(<a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a>* result, uint32_t newActorsMaxCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a372818aee680b0cefdcd27010234826e">findIslands</a>(<span class="keywordtype">void</span>* scratch);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a4f9e6d8c9f2b31644ae0a4bb03f88309">partition</a>(Actor** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4a77624d52d337f1b7158f0be6c233f">updateVisibleChunksFromGraphNodes</a>();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae75f198c241b12842e68e10e34e8ac39">partitionSingleLowerSupportChunk</a>(Actor** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aeac2e1cee03f101305013770cf0dff46">partitionMultipleGraphNodes</a>(Actor** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ac1d96307c55e4c1a6e0e717b51bf19">isBoundToWorld</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab0a3767495c186856dc5be23bcfdfa76">isSplitRequired</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint32_t m_familyOffset;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint32_t m_firstVisibleChunkIndex;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; uint32_t m_visibleChunkCount;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; uint32_t m_firstGraphNodeIndex;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint32_t m_graphNodeCount;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; uint32_t m_leafChunkCount;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;};</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_family_8h.html">NvBlastFamily.h</a>&quot;</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29"> 499</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">Actor::getFamilyHeader</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>());</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>*)((uintptr_t)<span class="keyword">this</span> - (uintptr_t)m_familyOffset);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;}</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4"> 506</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">Actor::getAsset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;}</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba"> 512</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">Actor::isActive</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> m_familyOffset != 0;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#aafeee48f4aa06696096f5400d7d825d6"> 518</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aafeee48f4aa06696096f5400d7d825d6">Actor::isSubSupportChunk</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount == 0;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;}</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8"> 524</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8">Actor::isSingleSupportChunk</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount == 1;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;}</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715"> 530</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">Actor::getIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>());</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* header = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(header != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> index = <span class="keyword">this</span> - header-&gt;getActors();</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt;= <a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">return</span> (uint32_t)index;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;}</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a50fa5ae538ce64ac6739ef1a33d1c0da"> 541</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a50fa5ae538ce64ac6739ef1a33d1c0da">Actor::getVisibleChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> m_visibleChunkCount;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;}</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba"> 547</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba">Actor::getFirstVisibleChunkIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> m_firstVisibleChunkIndex;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c"> 553</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c">Actor::getGraphNodeCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;}</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#afb3f0d84eeb5571142458e977fbd38cb"> 559</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#afb3f0d84eeb5571142458e977fbd38cb">Actor::getLeafChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> m_leafChunkCount;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;}</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a7a88dca14c79ffff918aafdd840e9587"> 565</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7a88dca14c79ffff918aafdd840e9587">Actor::getFirstGraphNodeIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> m_firstGraphNodeIndex;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;}</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f"> 570</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">Actor::getFirstSubsupportChunkIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6"> 575</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">Actor::getGraph</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> &amp;<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;}</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1"> 580</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">Actor::getFamilyGraph</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getFamilyGraph();</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b"> 585</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b">Actor::getChunks</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;getChunks();</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a262c308e634a6fc9feed396572ca8bcc"> 590</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a262c308e634a6fc9feed396572ca8bcc">Actor::getBonds</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;getBonds();</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;}</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681"> 595</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681">Actor::getLowerSupportChunkHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getLowerSupportChunkHealths();</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;}</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a2a26a08388a39786561c638553922222"> 600</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a2a26a08388a39786561c638553922222">Actor::getSubsupportChunkHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a58c464d4f1ab0736c2a55e034d5b0223">getSubsupportChunkHealths</a>();</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a9ca8fa81a8b5cf3a3f7beb04fc0bf7c4"> 605</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a9ca8fa81a8b5cf3a3f7beb04fc0bf7c4">Actor::getBondHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getBondHealths();</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;}</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e"> 610</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e">Actor::getGraphNodeIndexLinks</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getGraphNodeIndexLinks();</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ad8552a04fa6cdb1f3a01d11d18209e5a"> 616</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad8552a04fa6cdb1f3a01d11d18209e5a">Actor::release</a>()</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;{</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="comment">// Do nothing if this actor is not currently active.</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>())</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* header = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>();</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// Clear the graph node list</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; uint32_t* graphNodeIndexLinks = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getGraphNodeIndexLinks();</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(m_firstGraphNodeIndex))</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keyword">const</span> uint32_t graphNodeIndex = m_firstGraphNodeIndex;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; m_firstGraphNodeIndex = graphNodeIndexLinks[m_firstGraphNodeIndex];</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; graphNodeIndexLinks[graphNodeIndex] = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; --m_graphNodeCount;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_graphNodeCount == 0);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* asset = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>();</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="comment">// Clear the visible chunk list</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>* visibleChunkIndexLinks = header-&gt;getVisibleChunkIndexLinks();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; uint32_t* chunkActorIndices = header-&gt;getChunkActorIndices();</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(m_firstVisibleChunkIndex))</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// Descendants of the visible actor may be accessed again if the actor is deserialized. Clear subtree.</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html">Asset::DepthFirstIt</a> i(*asset, m_firstVisibleChunkIndex, <span class="keyword">true</span>); (bool)i; ++i)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; {</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; chunkActorIndices[(uint32_t)i] = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().removeListHead(m_firstVisibleChunkIndex, visibleChunkIndexLinks);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; --m_visibleChunkCount;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_visibleChunkCount == 0);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Clear the leaf chunk count</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; m_leafChunkCount = 0;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// This invalidates the actor and decrements the reference count</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; header-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a">returnActor</a>(*<span class="keyword">this</span>);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;}</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a4f9e6d8c9f2b31644ae0a4bb03f88309"> 664</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a4f9e6d8c9f2b31644ae0a4bb03f88309">Actor::partition</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;{</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="_nv_blast_preprocessor_internal_8h.html#afcde65e0a048967e7acbc3d901f217cd">NVBLASTLL_CHECK</a>(newActorsSize == 0 || newActors != <span class="keyword">nullptr</span>, logFn, <span class="stringliteral">&quot;Nv::Blast::Actor::partition: NULL newActors pointer array input with non-zero newActorCount.&quot;</span>, <span class="keywordflow">return</span> 0);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="comment">// Call one of two partition functions depending on the actor&#39;s support status</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount &lt;= 1 ?</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae75f198c241b12842e68e10e34e8ac39">partitionSingleLowerSupportChunk</a>(newActors, newActorsSize, logFn) : <span class="comment">// This actor will partition into subsupport chunks</span></div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aeac2e1cee03f101305013770cf0dff46">partitionMultipleGraphNodes</a>(newActors, newActorsSize, logFn); <span class="comment">// This actor will partition into support chunks</span></div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;}</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a7ac1d96307c55e4c1a6e0e717b51bf19"> 675</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ac1d96307c55e4c1a6e0e717b51bf19">Actor::isBoundToWorld</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>&amp; graph = *<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>();</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">if</span> (graph.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> == 0)</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// This shouldn&#39;t happen</span></div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">const</span> uint32_t lastGraphChunkIndex = graph.getChunkIndices()[graph.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> - 1];</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(lastGraphChunkIndex))</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; {</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// There is no world node</span></div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">getFamilyGraph</a>()-&gt;getIslandIds()[graph.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> - 1] == <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>();</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ab0a3767495c186856dc5be23bcfdfa76"> 695</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab0a3767495c186856dc5be23bcfdfa76">Actor::isSplitRequired</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>());</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c">getGraphNodeCount</a>() &lt;= 1)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; uint32_t chunkHealthIndex = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8">isSingleSupportChunk</a>() ? <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>() : <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba">getFirstVisibleChunkIndex</a>() - <a class="code" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">getFirstSubsupportChunkIndex</a>() + <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>()-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordtype">float</span>* chunkHealths = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681">getLowerSupportChunkHealths</a>();</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">if</span> (chunkHealths[chunkHealthIndex] &lt;= 0.0f)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">const</span> uint32_t chunkIndex = m_graphNodeCount == 0 ? m_firstVisibleChunkIndex : <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>()-&gt;getChunkIndices()[m_firstGraphNodeIndex];</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndex))</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b">getChunks</a>()[chunkIndex];</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; uint32_t childCount = chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> - chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> childCount &gt; 0;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; uint32_t* firstDirtyNodeIndices = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">getFamilyGraph</a>()-&gt;getFirstDirtyNodeIndices();</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(firstDirtyNodeIndices[<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>()]))</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; }</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;}</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html#ab1f6af40bccc777544406eec6c41ee7b"> 729</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html#ab1f6af40bccc777544406eec6c41ee7b">Actor::VisibleChunkIt::VisibleChunkIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor) : <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a>&lt;uint32_t&gt;(actor.m_firstVisibleChunkIndex, actor.<a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getVisibleChunkIndexLinks())</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;{</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;}</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html#aca18db3766523108bbb6e3a224deabad"> 736</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html#aca18db3766523108bbb6e3a224deabad">Actor::GraphNodeIt::GraphNodeIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor) : <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a>&lt;uint32_t&gt;(actor.m_firstGraphNodeIndex, actor.<a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e">getGraphNodeIndexLinks</a>())</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;}</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor">#if NVBLASTLL_CHECK_PARAMS</span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> isValid(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* buffers)</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;{</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">if</span> (buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307">chunkFractureCount</a> != 0 &amp;&amp; buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc">chunkFractures</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span> (buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356">bondFractureCount</a> != 0 &amp;&amp; buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837">bondFractures</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;}</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTACTOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_actor_html_af9d661f5aa82478ee9f2c15189ef4f9f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">Nv::Blast::Actor::getFirstSubsupportChunkIndex</a></div><div class="ttdeci">uint32_t getFirstSubsupportChunkIndex() const</div><div class="ttdef"><b>Definition:</b> NvBlastActor.h:570</div></div>
+<a href="_nv_blast_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_iterator_base_8h.html">NvBlastIteratorBase.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_support_graph_8h.html">NvBlastSupportGraph.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_family_graph_8h.html">NvBlastFamilyGraph.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_internal_8h.html">NvBlastPreprocessorInternal.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>FamilyGraph;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">struct </span>FamilyHeader;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ae80652887c7949e9bf5692fa06a1efa6"> 60</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">void</span> updateVisibleChunksFromSupportChunk&lt;&gt;(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>*, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>*, uint32_t*, uint32_t, uint32_t, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>*, uint32_t);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a49fd726e45168bd756e564cfaac6e356"> 65</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a49fd726e45168bd756e564cfaac6e356">Actor</a>() : m_familyOffset(0), m_firstVisibleChunkIndex(<a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>), m_visibleChunkCount(0), m_firstGraphNodeIndex(<a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>), m_graphNodeCount(0), m_leafChunkCount(0) {}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aafeee48f4aa06696096f5400d7d825d6">isSubSupportChunk</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8">isSingleSupportChunk</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a50fa5ae538ce64ac6739ef1a33d1c0da">getVisibleChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba">getFirstVisibleChunkIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c">getGraphNodeCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#afb3f0d84eeb5571142458e977fbd38cb">getLeafChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7a88dca14c79ffff918aafdd840e9587">getFirstGraphNodeIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">getFirstSubsupportChunkIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">getFamilyGraph</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; NvBlastChunk* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b">getChunks</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a262c308e634a6fc9feed396572ca8bcc">getBonds</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681">getLowerSupportChunkHealths</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a2a26a08388a39786561c638553922222">getSubsupportChunkHealths</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a9ca8fa81a8b5cf3a3f7beb04fc0bf7c4">getBondHealths</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e">getGraphNodeIndexLinks</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html"> 233</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html">VisibleChunkIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a>&lt;uint32_t&gt;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html#ab1f6af40bccc777544406eec6c41ee7b">VisibleChunkIt</a>(<span class="keyword">const</span> Actor&amp; actor);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; };</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html"> 253</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html">GraphNodeIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a>&lt;uint32_t&gt;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html">GraphNodeIt</a>(<span class="keyword">const</span> Actor&amp; actor);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">static</span> Actor* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a307ec3c8c73cb706ec153bd63baee7c4">create</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3082322754cba457f678e567b288fe02">createRequiredScratch</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">static</span> Actor* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#acc84f6ae1ee76cf23b15898d2ba23721">deserialize</a>(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a45de7eb2aac2759dd5ec5ef64bcfc6d0">serialize</a>(<span class="keywordtype">void</span>* buffer, uint32_t bufferSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn) <span class="keyword">const</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a77bba44beb744d8cb6250b6590602746">serializationRequiredStorage</a>(<a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn) <span class="keyword">const</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad8552a04fa6cdb1f3a01d11d18209e5a">release</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a69ff1bc362bb56b837ecfed98e94f087">generateFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers) <span class="keyword">const</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ae51f1cdc7a63ab67823d7cd08552d2">damageBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1, <span class="keywordtype">float</span> healthDamage);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ae51f1cdc7a63ab67823d7cd08552d2">damageBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1, uint32_t bondIndex, <span class="keywordtype">float</span> healthDamage);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ae51f1cdc7a63ab67823d7cd08552d2">damageBond</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a>&amp; cmd);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#acc3bf3a166faa14d058d8ef505228221">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7a34c8b6f62bc42fdae2a448f94d255b">splitRequiredScratch</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aecab306397e048f4f46440d4879ba879">split</a>(<a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a>* result, uint32_t newActorsMaxCount, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a372818aee680b0cefdcd27010234826e">findIslands</a>(<span class="keywordtype">void</span>* scratch);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a4f9e6d8c9f2b31644ae0a4bb03f88309">partition</a>(Actor** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4a77624d52d337f1b7158f0be6c233f">updateVisibleChunksFromGraphNodes</a>();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae75f198c241b12842e68e10e34e8ac39">partitionSingleLowerSupportChunk</a>(Actor** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aeac2e1cee03f101305013770cf0dff46">partitionMultipleGraphNodes</a>(Actor** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ac1d96307c55e4c1a6e0e717b51bf19">isBoundToWorld</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab0a3767495c186856dc5be23bcfdfa76">isSplitRequired</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint32_t m_familyOffset;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint32_t m_firstVisibleChunkIndex;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; uint32_t m_visibleChunkCount;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; uint32_t m_firstGraphNodeIndex;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint32_t m_graphNodeCount;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; uint32_t m_leafChunkCount;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;};</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_family_8h.html">NvBlastFamily.h</a>&quot;</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29"> 499</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">Actor::getFamilyHeader</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>());</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>*)((uintptr_t)<span class="keyword">this</span> - (uintptr_t)m_familyOffset);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;}</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4"> 506</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">Actor::getAsset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;}</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba"> 512</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">Actor::isActive</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> m_familyOffset != 0;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#aafeee48f4aa06696096f5400d7d825d6"> 518</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aafeee48f4aa06696096f5400d7d825d6">Actor::isSubSupportChunk</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount == 0;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;}</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8"> 524</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8">Actor::isSingleSupportChunk</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount == 1;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;}</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715"> 530</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">Actor::getIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>());</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* header = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(header != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> index = <span class="keyword">this</span> - header-&gt;getActors();</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt;= <a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">return</span> (uint32_t)index;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;}</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a50fa5ae538ce64ac6739ef1a33d1c0da"> 541</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a50fa5ae538ce64ac6739ef1a33d1c0da">Actor::getVisibleChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> m_visibleChunkCount;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;}</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba"> 547</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba">Actor::getFirstVisibleChunkIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> m_firstVisibleChunkIndex;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c"> 553</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c">Actor::getGraphNodeCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;}</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#afb3f0d84eeb5571142458e977fbd38cb"> 559</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#afb3f0d84eeb5571142458e977fbd38cb">Actor::getLeafChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> m_leafChunkCount;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;}</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a7a88dca14c79ffff918aafdd840e9587"> 565</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7a88dca14c79ffff918aafdd840e9587">Actor::getFirstGraphNodeIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> m_firstGraphNodeIndex;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;}</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f"> 570</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">Actor::getFirstSubsupportChunkIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6"> 575</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">Actor::getGraph</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> &amp;<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;}</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1"> 580</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">Actor::getFamilyGraph</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getFamilyGraph();</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b"> 585</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b">Actor::getChunks</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;getChunks();</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a262c308e634a6fc9feed396572ca8bcc"> 590</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a262c308e634a6fc9feed396572ca8bcc">Actor::getBonds</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>()-&gt;getBonds();</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;}</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681"> 595</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681">Actor::getLowerSupportChunkHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getLowerSupportChunkHealths();</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;}</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a2a26a08388a39786561c638553922222"> 600</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a2a26a08388a39786561c638553922222">Actor::getSubsupportChunkHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a58c464d4f1ab0736c2a55e034d5b0223">getSubsupportChunkHealths</a>();</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a9ca8fa81a8b5cf3a3f7beb04fc0bf7c4"> 605</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a9ca8fa81a8b5cf3a3f7beb04fc0bf7c4">Actor::getBondHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getBondHealths();</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;}</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e"> 610</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e">Actor::getGraphNodeIndexLinks</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getGraphNodeIndexLinks();</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ad8552a04fa6cdb1f3a01d11d18209e5a"> 616</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad8552a04fa6cdb1f3a01d11d18209e5a">Actor::release</a>()</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;{</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="comment">// Do nothing if this actor is not currently active.</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>())</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a>* header = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>();</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// Clear the graph node list</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; uint32_t* graphNodeIndexLinks = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getGraphNodeIndexLinks();</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(m_firstGraphNodeIndex))</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keyword">const</span> uint32_t graphNodeIndex = m_firstGraphNodeIndex;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; m_firstGraphNodeIndex = graphNodeIndexLinks[m_firstGraphNodeIndex];</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; graphNodeIndexLinks[graphNodeIndex] = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; --m_graphNodeCount;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_graphNodeCount == 0);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* asset = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a3c980c46eeb57c81490d61a6ea8604c4">getAsset</a>();</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="comment">// Clear the visible chunk list</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>* visibleChunkIndexLinks = header-&gt;getVisibleChunkIndexLinks();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; uint32_t* chunkActorIndices = header-&gt;getChunkActorIndices();</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(m_firstVisibleChunkIndex))</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// Descendants of the visible actor may be accessed again if the actor is deserialized. Clear subtree.</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html">Asset::DepthFirstIt</a> i(*asset, m_firstVisibleChunkIndex, <span class="keyword">true</span>); (bool)i; ++i)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; {</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; chunkActorIndices[(uint32_t)i] = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().removeListHead(m_firstVisibleChunkIndex, visibleChunkIndexLinks);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; --m_visibleChunkCount;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_visibleChunkCount == 0);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Clear the leaf chunk count</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; m_leafChunkCount = 0;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// This invalidates the actor and decrements the reference count</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; header-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a">returnActor</a>(*<span class="keyword">this</span>);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;}</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a4f9e6d8c9f2b31644ae0a4bb03f88309"> 664</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a4f9e6d8c9f2b31644ae0a4bb03f88309">Actor::partition</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>** newActors, uint32_t newActorsSize, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;{</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="_nv_blast_preprocessor_internal_8h.html#afcde65e0a048967e7acbc3d901f217cd">NVBLASTLL_CHECK</a>(newActorsSize == 0 || newActors != <span class="keyword">nullptr</span>, logFn, <span class="stringliteral">&quot;Nv::Blast::Actor::partition: NULL newActors pointer array input with non-zero newActorCount.&quot;</span>, <span class="keywordflow">return</span> 0);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="comment">// Call one of two partition functions depending on the actor&#39;s support status</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> m_graphNodeCount &lt;= 1 ?</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae75f198c241b12842e68e10e34e8ac39">partitionSingleLowerSupportChunk</a>(newActors, newActorsSize, logFn) : <span class="comment">// This actor will partition into subsupport chunks</span></div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html#aeac2e1cee03f101305013770cf0dff46">partitionMultipleGraphNodes</a>(newActors, newActorsSize, logFn); <span class="comment">// This actor will partition into support chunks</span></div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;}</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#a7ac1d96307c55e4c1a6e0e717b51bf19"> 675</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a7ac1d96307c55e4c1a6e0e717b51bf19">Actor::isBoundToWorld</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>&amp; graph = *<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>();</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">if</span> (graph.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> == 0)</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// This shouldn&#39;t happen</span></div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">const</span> uint32_t lastGraphChunkIndex = graph.getChunkIndices()[graph.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> - 1];</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(lastGraphChunkIndex))</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; {</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// There is no world node</span></div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">getFamilyGraph</a>()-&gt;getIslandIds()[graph.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> - 1] == <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>();</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor.html#ab0a3767495c186856dc5be23bcfdfa76"> 695</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab0a3767495c186856dc5be23bcfdfa76">Actor::isSplitRequired</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>());</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ae0549e605822375d30a7792d51109c3c">getGraphNodeCount</a>() &lt;= 1)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; uint32_t chunkHealthIndex = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a87055662ee49d52665187a3ad7ca3ae8">isSingleSupportChunk</a>() ? <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>() : <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2909f17e410de05ffda7f404f57f8ba">getFirstVisibleChunkIndex</a>() - <a class="code" href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">getFirstSubsupportChunkIndex</a>() + <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>()-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordtype">float</span>* chunkHealths = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ac2067aff207980173164d314e382b681">getLowerSupportChunkHealths</a>();</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">if</span> (chunkHealths[chunkHealthIndex] &lt;= 0.0f)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">const</span> uint32_t chunkIndex = m_graphNodeCount == 0 ? m_firstVisibleChunkIndex : <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a6cce3be1f2ac658373f2a8b8f70439d6">getGraph</a>()-&gt;getChunkIndices()[m_firstGraphNodeIndex];</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndex))</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#a86865e60a0ca1128aa8734926bfa981b">getChunks</a>()[chunkIndex];</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; uint32_t childCount = chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> - chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> childCount &gt; 0;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; uint32_t* firstDirtyNodeIndices = <a class="code" href="class_nv_1_1_blast_1_1_actor.html#ad4857a7cf331e84c5a50e4c9d379c7a1">getFamilyGraph</a>()-&gt;getFirstDirtyNodeIndices();</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(firstDirtyNodeIndices[<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a8ae7b25f7111f13222373a7f28357715">getIndex</a>()]))</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; }</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;}</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html#ab1f6af40bccc777544406eec6c41ee7b"> 729</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_visible_chunk_it.html#ab1f6af40bccc777544406eec6c41ee7b">Actor::VisibleChunkIt::VisibleChunkIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor) : <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a>&lt;uint32_t&gt;(actor.m_firstVisibleChunkIndex, actor.<a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;getVisibleChunkIndexLinks())</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;{</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;}</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html#aca18db3766523108bbb6e3a224deabad"> 736</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor_1_1_graph_node_it.html#aca18db3766523108bbb6e3a224deabad">Actor::GraphNodeIt::GraphNodeIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor) : <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a>&lt;uint32_t&gt;(actor.m_firstGraphNodeIndex, actor.<a class="code" href="class_nv_1_1_blast_1_1_actor.html#aaf6a6896b561323d1afc9e590700fa29">getFamilyHeader</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_actor.html#a1771a923c4181b126e074b1325d1af2e">getGraphNodeIndexLinks</a>())</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;}</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor">#if NVBLASTLL_CHECK_PARAMS</span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> isValid(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* buffers)</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;{</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">if</span> (buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307">chunkFractureCount</a> != 0 &amp;&amp; buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc">chunkFractures</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span> (buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356">bondFractureCount</a> != 0 &amp;&amp; buffers-&gt;<a class="code" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837">bondFractures</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;}</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTACTOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_actor_html_af9d661f5aa82478ee9f2c15189ef4f9f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_actor.html#af9d661f5aa82478ee9f2c15189ef4f9f">Nv::Blast::Actor::getFirstSubsupportChunkIndex</a></div><div class="ttdeci">uint32_t getFirstSubsupportChunkIndex() const</div><div class="ttdef"><b>Definition:</b> NvBlastActor.h:570</div></div>
<div class="ttc" id="_nv_blast_family_graph_8h_html"><div class="ttname"><a href="_nv_blast_family_graph_8h.html">NvBlastFamilyGraph.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_actor_html_acc3bf3a166faa14d058d8ef505228221"><div class="ttname"><a href="class_nv_1_1_blast_1_1_actor.html#acc3bf3a166faa14d058d8ef505228221">Nv::Blast::Actor::applyFracture</a></div><div class="ttdeci">void applyFracture(NvBlastFractureBuffers *eventBuffers, const NvBlastFractureBuffers *commands, NvBlastLog logFn, NvBlastTimers *timers)</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
diff --git a/docs/source_docs/files/_nv_blast_actor_serialization_block_8h_source.html b/docs/source_docs/files/_nv_blast_actor_serialization_block_8h_source.html
index 778c492..9728113 100755
--- a/docs/source_docs/files/_nv_blast_actor_serialization_block_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_actor_serialization_block_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_actor_serialization_block_8h
<div class="title">NvBlastActorSerializationBlock.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_actor_serialization_block_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTACTORSERIALIZATIONBLOCK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTACTORSERIALIZATIONBLOCK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_bool_array_8h.html">NvBlastFixedBoolArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html"> 44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html">ActorSerializationFormat</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095df"> 46</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095df">Version</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa29b700442b99288e676a368b305544c9"> 49</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa29b700442b99288e676a368b305544c9">Initial</a>,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// New formats must come before Count. They should be given descriptive names with more information in comments.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa249675818d4ea3712ad725465a1e323a"> 54</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa249675818d4ea3712ad725465a1e323a">Count</a>,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa26b64a066d09c0f4cdb95977f0f44ad4"> 57</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa26b64a066d09c0f4cdb95977f0f44ad4">Current</a> = <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa249675818d4ea3712ad725465a1e323a">Count</a> - 1</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html"> 69</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html">ActorSerializationHeader</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a5fe75d32e9ffc5efc35cfeeacb873eab"> 74</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a5fe75d32e9ffc5efc35cfeeacb873eab">m_formatVersion</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a264fc42878946de8cca437078be4d9c9"> 81</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a264fc42878946de8cca437078be4d9c9">m_size</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ada674a4d22c408910d1e170855dc890e"> 86</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ada674a4d22c408910d1e170855dc890e">m_index</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a9f9a5d3579926d882b78bbf42bfe5795"> 91</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a9f9a5d3579926d882b78bbf42bfe5795">m_visibleChunkCount</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a78a8fca9bc10bcc76c551f6ac1da7742"> 96</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a78a8fca9bc10bcc76c551f6ac1da7742">m_graphNodeCount</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ae656f397d9e63cbe61ffe4f1c0357880"> 101</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ae656f397d9e63cbe61ffe4f1c0357880">m_leafChunkCount</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_visibleChunkIndicesOffset, getVisibleChunkIndices, m_visibleChunkCount);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_graphNodeIndicesOffset, getGraphNodeIndices, m_graphNodeCount);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542">NvBlastBlockData</a>(<span class="keywordtype">float</span>, m_lowerSupportChunkHealthsOffset, getLowerSupportChunkHealths);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542">NvBlastBlockData</a>(<span class="keywordtype">float</span>, m_bondHealthsOffset, getBondHealths);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_fastRouteOffset, getFastRoute, m_graphNodeCount);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_hopCountsOffset, getHopCounts, m_graphNodeCount);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>, m_edgeRemovedArrayOffset, getEdgeRemovedArray);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a227ad41f76a5f6c64ae1fb549e08cb85"> 152</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">size_t</span> <a class="code" href="namespace_nv_1_1_blast.html#a227ad41f76a5f6c64ae1fb549e08cb85">getActorSerializationSize</a>(uint32_t visibleChunkCount, uint32_t lowerSupportChunkCount, uint32_t graphNodeCount, uint32_t bondCount)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Family offsets</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> visibleChunkIndicesOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html">ActorSerializationHeader</a>)); <span class="comment">// size = visibleChunkCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> graphNodeIndicesOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(visibleChunkIndicesOffset + visibleChunkCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = graphNodeCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> lowerSupportHealthsOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(graphNodeIndicesOffset + graphNodeCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = lowerSupportChunkCount*sizeof(float)</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> bondHealthsOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(lowerSupportHealthsOffset + lowerSupportChunkCount*<span class="keyword">sizeof</span>(<span class="keywordtype">float</span>)); <span class="comment">// size = bondCount*sizeof(float)</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> fastRouteOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(bondHealthsOffset + bondCount*<span class="keyword">sizeof</span>(<span class="keywordtype">float</span>)); <span class="comment">// size = graphNodeCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> hopCountsOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(fastRouteOffset + graphNodeCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = graphNodeCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> edgeRemovedArrayOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(hopCountsOffset + graphNodeCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = 0 or FixedBoolArray::requiredMemorySize(bondCount)</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(edgeRemovedArrayOffset + (bondCount == 0 ? 0 : <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344">FixedBoolArray::requiredMemorySize</a>(bondCount)));</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTACTORSERIALIZATIONBLOCK_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_actor_serialization_format_html_ab8d9afeccbfc1d237bd9903207d095df"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095df">Nv::Blast::ActorSerializationFormat::Version</a></div><div class="ttdeci">Version</div><div class="ttdef"><b>Definition:</b> NvBlastActorSerializationBlock.h:46</div></div>
+<a href="_nv_blast_actor_serialization_block_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTACTORSERIALIZATIONBLOCK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTACTORSERIALIZATIONBLOCK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_bool_array_8h.html">NvBlastFixedBoolArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html"> 44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html">ActorSerializationFormat</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095df"> 46</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095df">Version</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa29b700442b99288e676a368b305544c9"> 49</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa29b700442b99288e676a368b305544c9">Initial</a>,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// New formats must come before Count. They should be given descriptive names with more information in comments.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa249675818d4ea3712ad725465a1e323a"> 54</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa249675818d4ea3712ad725465a1e323a">Count</a>,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa26b64a066d09c0f4cdb95977f0f44ad4"> 57</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa26b64a066d09c0f4cdb95977f0f44ad4">Current</a> = <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095dfa249675818d4ea3712ad725465a1e323a">Count</a> - 1</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html"> 69</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html">ActorSerializationHeader</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a5fe75d32e9ffc5efc35cfeeacb873eab"> 74</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a5fe75d32e9ffc5efc35cfeeacb873eab">m_formatVersion</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a264fc42878946de8cca437078be4d9c9"> 81</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a264fc42878946de8cca437078be4d9c9">m_size</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ada674a4d22c408910d1e170855dc890e"> 86</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ada674a4d22c408910d1e170855dc890e">m_index</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a9f9a5d3579926d882b78bbf42bfe5795"> 91</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a9f9a5d3579926d882b78bbf42bfe5795">m_visibleChunkCount</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a78a8fca9bc10bcc76c551f6ac1da7742"> 96</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a78a8fca9bc10bcc76c551f6ac1da7742">m_graphNodeCount</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ae656f397d9e63cbe61ffe4f1c0357880"> 101</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#ae656f397d9e63cbe61ffe4f1c0357880">m_leafChunkCount</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_visibleChunkIndicesOffset, getVisibleChunkIndices, m_visibleChunkCount);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_graphNodeIndicesOffset, getGraphNodeIndices, m_graphNodeCount);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542">NvBlastBlockData</a>(<span class="keywordtype">float</span>, m_lowerSupportChunkHealthsOffset, getLowerSupportChunkHealths);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542">NvBlastBlockData</a>(<span class="keywordtype">float</span>, m_bondHealthsOffset, getBondHealths);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_fastRouteOffset, getFastRoute, m_graphNodeCount);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc">NvBlastBlockArrayData</a>(uint32_t, m_hopCountsOffset, getHopCounts, m_graphNodeCount);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>, m_edgeRemovedArrayOffset, getEdgeRemovedArray);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a227ad41f76a5f6c64ae1fb549e08cb85"> 152</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">size_t</span> <a class="code" href="namespace_nv_1_1_blast.html#a227ad41f76a5f6c64ae1fb549e08cb85">getActorSerializationSize</a>(uint32_t visibleChunkCount, uint32_t lowerSupportChunkCount, uint32_t graphNodeCount, uint32_t bondCount)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Family offsets</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> visibleChunkIndicesOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nv_1_1_blast_1_1_actor_serialization_header.html">ActorSerializationHeader</a>)); <span class="comment">// size = visibleChunkCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> graphNodeIndicesOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(visibleChunkIndicesOffset + visibleChunkCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = graphNodeCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> lowerSupportHealthsOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(graphNodeIndicesOffset + graphNodeCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = lowerSupportChunkCount*sizeof(float)</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> bondHealthsOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(lowerSupportHealthsOffset + lowerSupportChunkCount*<span class="keyword">sizeof</span>(<span class="keywordtype">float</span>)); <span class="comment">// size = bondCount*sizeof(float)</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> fastRouteOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(bondHealthsOffset + bondCount*<span class="keyword">sizeof</span>(<span class="keywordtype">float</span>)); <span class="comment">// size = graphNodeCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> hopCountsOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(fastRouteOffset + graphNodeCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = graphNodeCount*sizeof(uint32_t)</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> edgeRemovedArrayOffset = <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(hopCountsOffset + graphNodeCount*<span class="keyword">sizeof</span>(uint32_t)); <span class="comment">// size = 0 or FixedBoolArray::requiredMemorySize(bondCount)</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(edgeRemovedArrayOffset + (bondCount == 0 ? 0 : <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344">FixedBoolArray::requiredMemorySize</a>(bondCount)));</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTACTORSERIALIZATIONBLOCK_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_actor_serialization_format_html_ab8d9afeccbfc1d237bd9903207d095df"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_actor_serialization_format.html#ab8d9afeccbfc1d237bd9903207d095df">Nv::Blast::ActorSerializationFormat::Version</a></div><div class="ttdeci">Version</div><div class="ttdef"><b>Definition:</b> NvBlastActorSerializationBlock.h:46</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_actor_serialization_format_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_actor_serialization_format.html">Nv::Blast::ActorSerializationFormat</a></div><div class="ttdef"><b>Definition:</b> NvBlastActorSerializationBlock.h:44</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_actor_serialization_header_html_a264fc42878946de8cca437078be4d9c9"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_actor_serialization_header.html#a264fc42878946de8cca437078be4d9c9">Nv::Blast::ActorSerializationHeader::m_size</a></div><div class="ttdeci">uint32_t m_size</div><div class="ttdef"><b>Definition:</b> NvBlastActorSerializationBlock.h:81</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html">Nv::Blast::FixedBoolArray</a></div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:63</div></div>
diff --git a/docs/source_docs/files/_nv_blast_allocator_8h_source.html b/docs/source_docs/files/_nv_blast_allocator_8h_source.html
index 659646e..455115d 100755
--- a/docs/source_docs/files/_nv_blast_allocator_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_allocator_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_allocator_8h_source.html',''
<div class="title">NvBlastAllocator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_allocator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator.html">Allocator</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea"> 49</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea">Allocator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* = 0)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd"> 53</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, <span class="keyword">nullptr</span>, filename, line);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202"> 58</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202">deallocate</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTALLOCATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
+<a href="_nv_blast_allocator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTALLOCATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator.html">Allocator</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea"> 49</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea">Allocator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* = 0)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd"> 53</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#afdd1a23ef5c703cf4440db709536b6dd">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, <span class="keyword">nullptr</span>, filename, line);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202"> 58</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator.html#a59db4bb86390f4a5560f50d7a1b1e202">deallocate</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTALLOCATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_ae0303f5b6c3993251bdf790f43ef4e90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">Nv::Blast::AllocatorCallback::allocate</a></div><div class="ttdeci">virtual void * allocate(size_t size, const char *typeName, const char *filename, int line)=0</div><div class="ttdoc">Allocates size bytes of memory, which must be 16-byte aligned. </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_html_a27443f120df80394ff9800159b366eea"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator.html#a27443f120df80394ff9800159b366eea">Nv::Blast::Allocator::Allocator</a></div><div class="ttdeci">Allocator(const char *=0)</div><div class="ttdef"><b>Definition:</b> NvBlastAllocator.h:49</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_array_8h_source.html b/docs/source_docs/files/_nv_blast_array_8h_source.html
index 4911537..cb8bbf4 100755
--- a/docs/source_docs/files/_nv_blast_array_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_array_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_array_8h_source.html','');})
<div class="title">NvBlastArray.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTARRAY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTARRAY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PsInlineArray.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespace_nv.html"> 37</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html"> 39</a></span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_array.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260"> 48</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::Array&lt;T, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">type</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, u<span class="keywordtype">int</span>32_t N&gt;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_inline_array.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057"> 60</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::InlineArray&lt;T, N, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">type</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTARRAY_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_array_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html">Nv::Blast::Array</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:46</div></div>
+<a href="_nv_blast_array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTARRAY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTARRAY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PsInlineArray.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespace_nv.html"> 37</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html"> 39</a></span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_array.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260"> 48</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::Array&lt;T, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">type</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, u<span class="keywordtype">int</span>32_t N&gt;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_inline_array.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057"> 60</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::InlineArray&lt;T, N, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">type</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTARRAY_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_array_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html">Nv::Blast::Array</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:46</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_inline_array_html_a47c4d515e65129789d1b58bf02481057"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">Nv::Blast::InlineArray::type</a></div><div class="ttdeci">physx::shdfnd::InlineArray&lt; T, N, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:60</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_inline_array_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_inline_array.html">Nv::Blast::InlineArray</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:58</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_array_html_a94fd490890f7c6e45784fd43eb14e260"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Nv::Blast::Array::type</a></div><div class="ttdeci">physx::shdfnd::Array&lt; T, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:48</div></div>
diff --git a/docs/source_docs/files/_nv_blast_assert_8h_source.html b/docs/source_docs/files/_nv_blast_assert_8h_source.html
index 5941d04..9dfd8d9 100755
--- a/docs/source_docs/files/_nv_blast_assert_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_assert_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_assert_8h_source.html','');}
<div class="title">NvBlastAssert.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_assert_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTASSERT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTASSERT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if !NV_ENABLE_ASSERTS</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93"> 37</a></span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT(exp) ((void)0)</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#a4b7b9c0b35d81fc6b5a9ed1e3e02a335"> 38</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALWAYS_ASSERT_MESSAGE(message) ((void)0)</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#a4bef80b3f6d110ade867285f8e3acc00"> 39</a></span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT_WITH_MESSAGE(condition, message) ((void)0)</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define NVBLAST_CODE_ANALYSIS_ASSUME(exp) \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> __analysis_assume(!!(exp)) // This macro will be used to get rid of analysis warning messages if a NVBLAST_ASSERT is used</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// to &quot;guard&quot; illegal mem access, for example.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#define NVBLAST_CODE_ANALYSIS_ASSUME(exp)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT(exp) \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> static bool _ignore = false; \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> if (!(exp) &amp;&amp; !_ignore) NvBlastAssertHandler(#exp, __FILE__, __LINE__, _ignore); \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> NVBLAST_CODE_ANALYSIS_ASSUME(exp); \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">} ((void)0)</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#define NVBLAST_ALWAYS_ASSERT_MESSAGE(message) \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> static bool _ignore = false; \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> if(!_ignore) \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore); \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">} ((void)0)</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT_WITH_MESSAGE(exp, message) \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> static bool _ignore = false; \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> if (!(exp) &amp;&amp; !_ignore) NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore); \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> NVBLAST_CODE_ANALYSIS_ASSUME(exp); \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">} ((void)0)</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#ab1324c0bc11772792474d475d2fef7b2"> 70</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALWAYS_ASSERT() NVBLAST_ASSERT(0)</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_assert_8h.html#a6982c4d677db17618be039f7890037da">NvBlastAssertHandler</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* expr, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line, <span class="keywordtype">bool</span>&amp; ignore);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;} <span class="comment">// extern &quot;C&quot;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTASSERT_H</span></div><div class="ttc" id="_nv_blast_assert_8h_html_a6982c4d677db17618be039f7890037da"><div class="ttname"><a href="_nv_blast_assert_8h.html#a6982c4d677db17618be039f7890037da">NvBlastAssertHandler</a></div><div class="ttdeci">NVBLAST_API void NvBlastAssertHandler(const char *expr, const char *file, int line, bool &amp;ignore)</div></div>
+<a href="_nv_blast_assert_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTASSERT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTASSERT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if !NV_ENABLE_ASSERTS</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93"> 37</a></span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT(exp) ((void)0)</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#a4b7b9c0b35d81fc6b5a9ed1e3e02a335"> 38</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALWAYS_ASSERT_MESSAGE(message) ((void)0)</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#a4bef80b3f6d110ade867285f8e3acc00"> 39</a></span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT_WITH_MESSAGE(condition, message) ((void)0)</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define NVBLAST_CODE_ANALYSIS_ASSUME(exp) \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> __analysis_assume(!!(exp)) // This macro will be used to get rid of analysis warning messages if a NVBLAST_ASSERT is used</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// to &quot;guard&quot; illegal mem access, for example.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#define NVBLAST_CODE_ANALYSIS_ASSUME(exp)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT(exp) \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> static bool _ignore = false; \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> if (!(exp) &amp;&amp; !_ignore) NvBlastAssertHandler(#exp, __FILE__, __LINE__, _ignore); \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> NVBLAST_CODE_ANALYSIS_ASSUME(exp); \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">} ((void)0)</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#define NVBLAST_ALWAYS_ASSERT_MESSAGE(message) \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> static bool _ignore = false; \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> if(!_ignore) \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore); \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">} ((void)0)</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define NVBLAST_ASSERT_WITH_MESSAGE(exp, message) \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> static bool _ignore = false; \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> if (!(exp) &amp;&amp; !_ignore) NvBlastAssertHandler(message, __FILE__, __LINE__, _ignore); \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> NVBLAST_CODE_ANALYSIS_ASSUME(exp); \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">} ((void)0)</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_nv_blast_assert_8h.html#ab1324c0bc11772792474d475d2fef7b2"> 70</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALWAYS_ASSERT() NVBLAST_ASSERT(0)</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_assert_8h.html#a6982c4d677db17618be039f7890037da">NvBlastAssertHandler</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* expr, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line, <span class="keywordtype">bool</span>&amp; ignore);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;} <span class="comment">// extern &quot;C&quot;</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTASSERT_H</span></div><div class="ttc" id="_nv_blast_assert_8h_html_a6982c4d677db17618be039f7890037da"><div class="ttname"><a href="_nv_blast_assert_8h.html#a6982c4d677db17618be039f7890037da">NvBlastAssertHandler</a></div><div class="ttdeci">NVBLAST_API void NvBlastAssertHandler(const char *expr, const char *file, int line, bool &amp;ignore)</div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html_ae5c980f1b9848025a2fefa05a9d3bce1"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a></div><div class="ttdeci">#define NVBLAST_API</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessor.h:37</div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/docs/source_docs/files/_nv_blast_asset_8h_source.html b/docs/source_docs/files/_nv_blast_asset_8h_source.html
index abfb857..35b8f60 100755
--- a/docs/source_docs/files/_nv_blast_asset_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_asset_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_asset_8h_source.html','');})
<div class="title">NvBlastAsset.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_support_graph_8h.html">NvBlastSupportGraph.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_chunk_hierarchy_8h.html">NvBlastChunkHierarchy.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html"> 52</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html">ChunkAnnotation</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1"> 54</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1">Enum</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1ae6aa155c5bf1ea23255628381c113960"> 56</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1ae6aa155c5bf1ea23255628381c113960">Parent</a> = (1 &lt;&lt; 0),</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a725a22909a079fe964634a5cd0a040ab"> 57</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a725a22909a079fe964634a5cd0a040ab">Support</a> = (1 &lt;&lt; 1),</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a1305d2d1024f986f194a73bbeb790e3c"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a1305d2d1024f986f194a73bbeb790e3c">SuperSupport</a> = (1 &lt;&lt; 2),</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Combinations</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1aae8da77ed8a1e3151f11db8f3e55f944"> 61</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1aae8da77ed8a1e3151f11db8f3e55f944">UpperSupport</a> = <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a725a22909a079fe964634a5cd0a040ab">Support</a> | <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a1305d2d1024f986f194a73bbeb790e3c">SuperSupport</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad6dc3a8db8057eee30b10dff9680595c">create</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a13e1d7037123db8187bc4620a7f2e97a">getMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ab7a7be3a23d3cebbf4be3ef8f1b442c6">createRequiredScratch</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">getUpperSupportChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">getLowerSupportChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470">getBondCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a">getHierarchyCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485">getContiguousLowerSupportIndex</a>(uint32_t chunkIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Static functions</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a14908228fdf062c9b39b76ce027feedc">ensureExactSupportCoverage</a>(uint32_t&amp; supportChunkCount, uint32_t&amp; leafChunkCount, <span class="keywordtype">char</span>* chunkAnnotation, uint32_t chunkCount, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, <span class="keywordtype">bool</span> testOnly, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad8dea6287a5ffcab093b7b79b6266033">testForValidChunkOrder</a>(uint32_t chunkCount, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, <span class="keyword">const</span> <span class="keywordtype">char</span>* chunkAnnotation, <span class="keywordtype">void</span>* scratch);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a5922a3310ddab6fd4e9bedbf23c8dd1a"> 182</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a5922a3310ddab6fd4e9bedbf23c8dd1a">m_header</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a68b3de340801db06e5e057434ca6137e"> 187</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a68b3de340801db06e5e057434ca6137e">m_ID</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177"> 192</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd"> 197</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a97582e0fbb4b6c1b36ec613c850bc3b4"> 202</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a97582e0fbb4b6c1b36ec613c850bc3b4">m_leafChunkCount</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9"> 207</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2"> 212</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2">m_bondCount</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(<a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>, m_chunksOffset, getChunks, m_chunkCount);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(<a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>, m_bondsOffset, getBonds, m_bondCount);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(uint32_t, m_subtreeLeafChunkCountsOffset, getSubtreeLeafChunkCounts, m_chunkCount);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(uint32_t, m_chunkToGraphNodeMapOffset, getChunkToGraphNodeMap, m_chunkCount);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html"> 253</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html">DepthFirstIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">ChunkDepthFirstIt</a></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html#a864d43b36048330ee9facb7ec74368da"> 257</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html#a864d43b36048330ee9facb7ec74368da">DepthFirstIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>&amp; asset, uint32_t startChunkIndex, <span class="keywordtype">bool</span> upperSupportOnly = <span class="keyword">false</span>) :</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">ChunkDepthFirstIt</a>(asset.getChunks(), startChunkIndex, upperSupportOnly ? asset.<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">getUpperSupportChunkCount</a>() : asset.m_chunkCount) {}</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;};</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331"> 265</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">Asset::getUpperSupportChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc"> 271</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">Asset::getLowerSupportChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> + (<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a> - <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470"> 277</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470">Asset::getBondCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.getAdjacencyPartition()[<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>] &amp; 1) == 0); <span class="comment">// The bidirectional graph data should have an even number of edges</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.getAdjacencyPartition()[<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>] / 2; <span class="comment">// Directional bonds, divide by two</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;}</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a"> 284</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a">Asset::getHierarchyCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks = getChunks();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>; ++i)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunks[i].parentChunkIndex))</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;}</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485"> 298</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485">Asset::getContiguousLowerSupportIndex</a>(uint32_t chunkIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(chunkIndex &lt; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> chunkIndex &lt; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a> ? getChunkToGraphNodeMap()[chunkIndex] : (chunkIndex - <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a> + <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment">//JDM: Expose this so serialization layer can use it.</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="namespace_nv_1_1_blast.html#aae75b7f94762b03efcbbe11cb3752ef1">initializeAsset</a>(<span class="keywordtype">void</span>* mem, <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <span class="keywordtype">id</span>, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTASSET_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_asset_html_aafdb7951c9cc382b47f65c9bcd68e2a2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2">Nv::Blast::Asset::m_bondCount</a></div><div class="ttdeci">uint32_t m_bondCount</div><div class="ttdef"><b>Definition:</b> NvBlastAsset.h:212</div></div>
+<a href="_nv_blast_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_support_graph_8h.html">NvBlastSupportGraph.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_chunk_hierarchy_8h.html">NvBlastChunkHierarchy.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html"> 52</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html">ChunkAnnotation</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1"> 54</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1">Enum</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1ae6aa155c5bf1ea23255628381c113960"> 56</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1ae6aa155c5bf1ea23255628381c113960">Parent</a> = (1 &lt;&lt; 0),</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a725a22909a079fe964634a5cd0a040ab"> 57</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a725a22909a079fe964634a5cd0a040ab">Support</a> = (1 &lt;&lt; 1),</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a1305d2d1024f986f194a73bbeb790e3c"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a1305d2d1024f986f194a73bbeb790e3c">SuperSupport</a> = (1 &lt;&lt; 2),</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Combinations</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1aae8da77ed8a1e3151f11db8f3e55f944"> 61</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1aae8da77ed8a1e3151f11db8f3e55f944">UpperSupport</a> = <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a725a22909a079fe964634a5cd0a040ab">Support</a> | <a class="code" href="struct_nv_1_1_blast_1_1_asset_1_1_chunk_annotation.html#afdc7db1ba5c96b0e9fc3d8a0c57c29e1a1305d2d1024f986f194a73bbeb790e3c">SuperSupport</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad6dc3a8db8057eee30b10dff9680595c">create</a>(<span class="keywordtype">void</span>* mem, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc, <span class="keywordtype">void</span>* scratch, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a13e1d7037123db8187bc4620a7f2e97a">getMemorySize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ab7a7be3a23d3cebbf4be3ef8f1b442c6">createRequiredScratch</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a>* desc);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">getUpperSupportChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">getLowerSupportChunkCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470">getBondCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a">getHierarchyCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485">getContiguousLowerSupportIndex</a>(uint32_t chunkIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Static functions</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a14908228fdf062c9b39b76ce027feedc">ensureExactSupportCoverage</a>(uint32_t&amp; supportChunkCount, uint32_t&amp; leafChunkCount, <span class="keywordtype">char</span>* chunkAnnotation, uint32_t chunkCount, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, <span class="keywordtype">bool</span> testOnly, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad8dea6287a5ffcab093b7b79b6266033">testForValidChunkOrder</a>(uint32_t chunkCount, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, <span class="keyword">const</span> <span class="keywordtype">char</span>* chunkAnnotation, <span class="keywordtype">void</span>* scratch);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a5922a3310ddab6fd4e9bedbf23c8dd1a"> 182</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a5922a3310ddab6fd4e9bedbf23c8dd1a">m_header</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a68b3de340801db06e5e057434ca6137e"> 187</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a68b3de340801db06e5e057434ca6137e">m_ID</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177"> 192</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd"> 197</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a97582e0fbb4b6c1b36ec613c850bc3b4"> 202</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a97582e0fbb4b6c1b36ec613c850bc3b4">m_leafChunkCount</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9"> 207</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2"> 212</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2">m_bondCount</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(<a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>, m_chunksOffset, getChunks, m_chunkCount);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(<a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>, m_bondsOffset, getBonds, m_bondCount);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(uint32_t, m_subtreeLeafChunkCountsOffset, getSubtreeLeafChunkCounts, m_chunkCount);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924">NvBlastBlockArrayData</a>(uint32_t, m_chunkToGraphNodeMapOffset, getChunkToGraphNodeMap, m_chunkCount);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html"> 253</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html">DepthFirstIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">ChunkDepthFirstIt</a></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html#a864d43b36048330ee9facb7ec74368da"> 257</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset_1_1_depth_first_it.html#a864d43b36048330ee9facb7ec74368da">DepthFirstIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>&amp; asset, uint32_t startChunkIndex, <span class="keywordtype">bool</span> upperSupportOnly = <span class="keyword">false</span>) :</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">ChunkDepthFirstIt</a>(asset.getChunks(), startChunkIndex, upperSupportOnly ? asset.<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">getUpperSupportChunkCount</a>() : asset.m_chunkCount) {}</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;};</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331"> 265</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">Asset::getUpperSupportChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc"> 271</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">Asset::getLowerSupportChunkCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a> + (<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a> - <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470"> 277</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470">Asset::getBondCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.getAdjacencyPartition()[<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>] &amp; 1) == 0); <span class="comment">// The bidirectional graph data should have an even number of edges</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.getAdjacencyPartition()[<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>] / 2; <span class="comment">// Directional bonds, divide by two</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;}</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a"> 284</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a">Asset::getHierarchyCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks = getChunks();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>; ++i)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunks[i].parentChunkIndex))</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;}</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485"> 298</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485">Asset::getContiguousLowerSupportIndex</a>(uint32_t chunkIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(chunkIndex &lt; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> chunkIndex &lt; <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a> ? getChunkToGraphNodeMap()[chunkIndex] : (chunkIndex - <a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a> + <a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment">//JDM: Expose this so serialization layer can use it.</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="namespace_nv_1_1_blast.html#aae75b7f94762b03efcbbe11cb3752ef1">initializeAsset</a>(<span class="keywordtype">void</span>* mem, <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <span class="keywordtype">id</span>, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTASSET_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_asset_html_aafdb7951c9cc382b47f65c9bcd68e2a2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2">Nv::Blast::Asset::m_bondCount</a></div><div class="ttdeci">uint32_t m_bondCount</div><div class="ttdef"><b>Definition:</b> NvBlastAsset.h:212</div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_asset_html_a13e1d7037123db8187bc4620a7f2e97a"><div class="ttname"><a href="class_nv_1_1_blast_1_1_asset.html#a13e1d7037123db8187bc4620a7f2e97a">Nv::Blast::Asset::getMemorySize</a></div><div class="ttdeci">static size_t getMemorySize(const NvBlastAssetDesc *desc)</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_support_graph_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_support_graph.html">Nv::Blast::SupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastSupportGraph.h:76</div></div>
diff --git a/docs/source_docs/files/_nv_blast_atomic_8h_source.html b/docs/source_docs/files/_nv_blast_atomic_8h_source.html
index 00a1227..cf8b6ed 100755
--- a/docs/source_docs/files/_nv_blast_atomic_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_atomic_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_atomic_8h_source.html','');}
<div class="title">NvBlastAtomic.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_atomic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTATOMIC_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTATOMIC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/* increment the specified location. Return the incremented value */</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;int32_t <a class="code" href="namespace_nv_1_1_blast.html#a02d7c995394a2e2c7f0b18ee051bec2f">atomicIncrement</a>(<span class="keyword">volatile</span> int32_t* val);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/* decrement the specified location. Return the decremented value */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;int32_t <a class="code" href="namespace_nv_1_1_blast.html#aa0a1acaf4abe11be6cfdcf14cecf4818">atomicDecrement</a>(<span class="keyword">volatile</span> int32_t* val);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTATOMIC_H</span></div><div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
+<a href="_nv_blast_atomic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTATOMIC_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTATOMIC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/* increment the specified location. Return the incremented value */</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;int32_t <a class="code" href="namespace_nv_1_1_blast.html#a02d7c995394a2e2c7f0b18ee051bec2f">atomicIncrement</a>(<span class="keyword">volatile</span> int32_t* val);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/* decrement the specified location. Return the decremented value */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;int32_t <a class="code" href="namespace_nv_1_1_blast.html#aa0a1acaf4abe11be6cfdcf14cecf4818">atomicDecrement</a>(<span class="keyword">volatile</span> int32_t* val);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTATOMIC_H</span></div><div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a02d7c995394a2e2c7f0b18ee051bec2f"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a02d7c995394a2e2c7f0b18ee051bec2f">Nv::Blast::atomicIncrement</a></div><div class="ttdeci">int32_t atomicIncrement(volatile int32_t *val)</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_aa0a1acaf4abe11be6cfdcf14cecf4818"><div class="ttname"><a href="namespace_nv_1_1_blast.html#aa0a1acaf4abe11be6cfdcf14cecf4818">Nv::Blast::atomicDecrement</a></div><div class="ttdeci">int32_t atomicDecrement(volatile int32_t *val)</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_bond_d_t_o_8h_source.html b/docs/source_docs/files/_nv_blast_bond_d_t_o_8h_source.html
index 367321d..19c62fa 100755
--- a/docs/source_docs/files/_nv_blast_bond_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_bond_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_bond_d_t_o_8h_source.html','
<div class="title">NvBlastBondDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_bond_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(<a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>, <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_nv_blast_bond.html">Nv::Blast::Serialization::NvBlastBond</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_nv_blast_bond_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(<a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>, <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_nv_blast_bond.html">Nv::Blast::Serialization::NvBlastBond</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="_nv_blast_ext_ll_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8capn_8h.html">NvBlastExtLlSerialization.capn.h</a></div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_chunk_d_t_o_8h_source.html b/docs/source_docs/files/_nv_blast_chunk_d_t_o_8h_source.html
index 6df200f..03dbb80 100755
--- a/docs/source_docs/files/_nv_blast_chunk_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_chunk_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_chunk_d_t_o_8h_source.html',
<div class="title">NvBlastChunkDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_chunk_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(<a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>, <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_nv_blast_chunk.html">Nv::Blast::Serialization::NvBlastChunk</a>)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_nv_blast_chunk_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(<a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>, <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_nv_blast_chunk.html">Nv::Blast::Serialization::NvBlastChunk</a>)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="_nv_blast_ext_ll_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8capn_8h.html">NvBlastExtLlSerialization.capn.h</a></div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="struct_nv_blast_chunk_html"><div class="ttname"><a href="struct_nv_blast_chunk.html">NvBlastChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:152</div></div>
diff --git a/docs/source_docs/files/_nv_blast_chunk_hierarchy_8h_source.html b/docs/source_docs/files/_nv_blast_chunk_hierarchy_8h_source.html
index 29ac98b..691afa5 100755
--- a/docs/source_docs/files/_nv_blast_chunk_hierarchy_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_chunk_hierarchy_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_chunk_hierarchy_8h_source.ht
<div class="title">NvBlastChunkHierarchy.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_chunk_hierarchy_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTCHUNKHIERARCHY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTCHUNKHIERARCHY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_iterator_base_8h.html">NvBlastIteratorBase.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">ChunkDepthFirstIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;uint32_t&gt;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a2e59706de3653f3161ab32c0170ce171"> 53</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a2e59706de3653f3161ab32c0170ce171">ChunkDepthFirstIt</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks, uint32_t startChunkIndex, uint32_t chunkIndexLimit) :</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;uint32_t&gt;(startChunkIndex), m_chunks(chunks), m_stop(startChunkIndex), m_limit(chunkIndexLimit)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a> &gt;= m_limit)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a> = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a9ad72eda289a803c6da997dd8620b583"> 63</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a9ad72eda289a803c6da997dd8620b583">operator ++ </a>()</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(<a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunk = m_chunks + <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span> (chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> &gt; chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &amp;&amp; chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &lt; m_limit)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_curr = chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span> (;;)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (m_curr == m_stop)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_curr = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>)); <span class="comment">// This should not be possible with this search</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* parentChunk = m_chunks + chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (++m_curr &lt; parentChunk-&gt;childIndexStop)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">break</span>; <span class="comment">// Sibling chunk is valid, that&#39;s the next chunk</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_curr = chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; chunk = parentChunk;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* m_chunks;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint32_t m_stop;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint32_t m_limit;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a4693639353fc51c08a21065403386a58">enumerateChunkHierarchyBreadthFirst</a></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a4693639353fc51c08a21065403386a58"> 106</a></span>&#160;(</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;uint32_t* chunkIndices,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;uint32_t chunkIndicesSize,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;uint32_t chunkIndex,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keywordtype">bool</span> includeRoot = <span class="keyword">true</span>,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;uint32_t chunkIndexLimit = invalidIndex&lt;uint32_t&gt;()</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (chunkIndicesSize == 0)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t chunkIndexCount = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> rootHandled = <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (includeRoot)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; chunkIndices[chunkIndexCount++] = chunkIndex;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; rootHandled = <span class="keyword">true</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (uint32_t curr = 0; !rootHandled || curr &lt; chunkIndexCount;)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = chunks[rootHandled ? chunkIndices[curr] : chunkIndex];</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &lt; chunkIndexLimit)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> uint32_t childIndexStop = chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> &lt; chunkIndexLimit ? chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> : chunkIndexLimit;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> uint32_t childIndexBufferStop = chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> + (chunkIndicesSize - chunkIndexCount);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> uint32_t stop = childIndexStop &lt; childIndexBufferStop ? childIndexStop : childIndexBufferStop;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (uint32_t childIndex = chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; childIndex &lt; stop; ++childIndex)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; chunkIndices[chunkIndexCount++] = childIndex;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> (rootHandled)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; ++curr;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; rootHandled = <span class="keyword">true</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> chunkIndexCount;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> VisibilityRep&gt;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a6e3f40bb46c32351ff0e0c6de98e58ec">updateVisibleChunksFromSupportChunk</a></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a6e3f40bb46c32351ff0e0c6de98e58ec"> 154</a></span>&#160;(</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;VisibilityRep* actors,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>* visibleChunkIndexLinks,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;uint32_t* chunkActorIndices,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;uint32_t actorIndex,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;uint32_t supportChunkIndex,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;uint32_t upperSupportChunkCount</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uint32_t chunkIndex = supportChunkIndex;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint32_t chunkActorIndex = chunkActorIndices[supportChunkIndex];</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint32_t newChunkActorIndex = actorIndex;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; VisibilityRep&amp; thisActor = actors[actorIndex];</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">do</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (chunkActorIndex == newChunkActorIndex)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">break</span>; <span class="comment">// Nothing to do</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> uint32_t parentChunkIndex = chunks[chunkIndex].<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> uint32_t parentChunkActorIndex = parentChunkIndex != invalidIndex&lt;uint32_t&gt;() ? chunkActorIndices[parentChunkIndex] : invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> chunkVisible = chunkActorIndex != parentChunkActorIndex;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// If the chunk is visible, it needs to be removed from its old actor&#39;s visibility list</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (chunkVisible &amp;&amp; !<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkActorIndex))</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; VisibilityRep&amp; chunkActor = actors[chunkActorIndex];</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().removeFromList(chunkActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, chunkIndex);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; --chunkActor.m_visibleChunkCount;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// Now update the chunk&#39;s actor index</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> uint32_t oldChunkActorIndex = chunkActorIndices[chunkIndex];</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; chunkActorIndices[chunkIndex] = newChunkActorIndex;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (newChunkActorIndex != invalidIndex&lt;uint32_t&gt;() &amp;&amp; parentChunkActorIndex != newChunkActorIndex)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// The chunk is now visible. Add it to this actor&#39;s visibility list</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().insertListHead(thisActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, chunkIndex);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; ++thisActor.m_visibleChunkCount;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// Remove its children from this actor&#39;s visibility list</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (actorIndex != oldChunkActorIndex)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = chunks[chunkIndex];</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &lt; upperSupportChunkCount) <span class="comment">// Only need to deal with upper-support children</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (uint32_t childChunkIndex = chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; childChunkIndex &lt; chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>; ++childChunkIndex)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (chunkActorIndices[childChunkIndex] == actorIndex)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().removeFromList(thisActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, childChunkIndex);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; --thisActor.m_visibleChunkCount;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (parentChunkIndex != invalidIndex&lt;uint32_t&gt;())</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// If all of its siblings have the same index, then the parent will too. Otherwise, the parent will have an invalid index and its children will be visible</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; parentChunk = chunks[parentChunkIndex];</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">bool</span> uniform = <span class="keyword">true</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span> (uint32_t childChunkIndex = parentChunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; uniform &amp;&amp; childChunkIndex &lt; parentChunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>; ++childChunkIndex)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uniform = (newChunkActorIndex == chunkActorIndices[childChunkIndex]);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span> (!uniform)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; newChunkActorIndex = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">for</span> (uint32_t childChunkIndex = parentChunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; childChunkIndex &lt; parentChunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>; ++childChunkIndex)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">const</span> uint32_t childChunkActorIndex = chunkActorIndices[childChunkIndex];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (childChunkActorIndex != invalidIndex&lt;uint32_t&gt;() &amp;&amp; childChunkActorIndex == parentChunkActorIndex)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// The child was invisible. Add it to its actor&#39;s visibility list</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; VisibilityRep&amp; childChunkActor = actors[childChunkActorIndex];</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().insertListHead(childChunkActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, childChunkIndex);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; ++childChunkActor.m_visibleChunkCount;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// Climb the hierarchy</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; chunkIndex = parentChunkIndex;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; chunkActorIndex = parentChunkActorIndex;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="keywordflow">while</span> (chunkIndex != invalidIndex&lt;uint32_t&gt;());</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTCHUNKHIERARCHY_H</span></div><div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
+<a href="_nv_blast_chunk_hierarchy_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTCHUNKHIERARCHY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTCHUNKHIERARCHY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_iterator_base_8h.html">NvBlastIteratorBase.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">ChunkDepthFirstIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;uint32_t&gt;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a2e59706de3653f3161ab32c0170ce171"> 53</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a2e59706de3653f3161ab32c0170ce171">ChunkDepthFirstIt</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks, uint32_t startChunkIndex, uint32_t chunkIndexLimit) :</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;uint32_t&gt;(startChunkIndex), m_chunks(chunks), m_stop(startChunkIndex), m_limit(chunkIndexLimit)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a> &gt;= m_limit)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a> = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a9ad72eda289a803c6da997dd8620b583"> 63</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a9ad72eda289a803c6da997dd8620b583">operator ++ </a>()</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(<a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunk = m_chunks + <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span> (chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> &gt; chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &amp;&amp; chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &lt; m_limit)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_curr = chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span> (;;)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (m_curr == m_stop)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_curr = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>)); <span class="comment">// This should not be possible with this search</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* parentChunk = m_chunks + chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (++m_curr &lt; parentChunk-&gt;childIndexStop)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">break</span>; <span class="comment">// Sibling chunk is valid, that&#39;s the next chunk</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_curr = chunk-&gt;<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; chunk = parentChunk;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* m_chunks;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint32_t m_stop;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint32_t m_limit;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a4693639353fc51c08a21065403386a58">enumerateChunkHierarchyBreadthFirst</a></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a4693639353fc51c08a21065403386a58"> 106</a></span>&#160;(</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;uint32_t* chunkIndices,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;uint32_t chunkIndicesSize,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;uint32_t chunkIndex,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keywordtype">bool</span> includeRoot = <span class="keyword">true</span>,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;uint32_t chunkIndexLimit = invalidIndex&lt;uint32_t&gt;()</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (chunkIndicesSize == 0)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t chunkIndexCount = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> rootHandled = <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (includeRoot)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; chunkIndices[chunkIndexCount++] = chunkIndex;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; rootHandled = <span class="keyword">true</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (uint32_t curr = 0; !rootHandled || curr &lt; chunkIndexCount;)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = chunks[rootHandled ? chunkIndices[curr] : chunkIndex];</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &lt; chunkIndexLimit)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> uint32_t childIndexStop = chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> &lt; chunkIndexLimit ? chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a> : chunkIndexLimit;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> uint32_t childIndexBufferStop = chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> + (chunkIndicesSize - chunkIndexCount);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> uint32_t stop = childIndexStop &lt; childIndexBufferStop ? childIndexStop : childIndexBufferStop;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (uint32_t childIndex = chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; childIndex &lt; stop; ++childIndex)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; chunkIndices[chunkIndexCount++] = childIndex;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> (rootHandled)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; ++curr;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; rootHandled = <span class="keyword">true</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> chunkIndexCount;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> VisibilityRep&gt;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a6e3f40bb46c32351ff0e0c6de98e58ec">updateVisibleChunksFromSupportChunk</a></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a6e3f40bb46c32351ff0e0c6de98e58ec"> 154</a></span>&#160;(</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;VisibilityRep* actors,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>* visibleChunkIndexLinks,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;uint32_t* chunkActorIndices,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;uint32_t actorIndex,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;uint32_t supportChunkIndex,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;uint32_t upperSupportChunkCount</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uint32_t chunkIndex = supportChunkIndex;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint32_t chunkActorIndex = chunkActorIndices[supportChunkIndex];</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint32_t newChunkActorIndex = actorIndex;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; VisibilityRep&amp; thisActor = actors[actorIndex];</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">do</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (chunkActorIndex == newChunkActorIndex)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">break</span>; <span class="comment">// Nothing to do</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> uint32_t parentChunkIndex = chunks[chunkIndex].<a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> uint32_t parentChunkActorIndex = parentChunkIndex != invalidIndex&lt;uint32_t&gt;() ? chunkActorIndices[parentChunkIndex] : invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> chunkVisible = chunkActorIndex != parentChunkActorIndex;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// If the chunk is visible, it needs to be removed from its old actor&#39;s visibility list</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (chunkVisible &amp;&amp; !<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkActorIndex))</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; VisibilityRep&amp; chunkActor = actors[chunkActorIndex];</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().removeFromList(chunkActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, chunkIndex);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; --chunkActor.m_visibleChunkCount;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// Now update the chunk&#39;s actor index</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> uint32_t oldChunkActorIndex = chunkActorIndices[chunkIndex];</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; chunkActorIndices[chunkIndex] = newChunkActorIndex;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (newChunkActorIndex != invalidIndex&lt;uint32_t&gt;() &amp;&amp; parentChunkActorIndex != newChunkActorIndex)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// The chunk is now visible. Add it to this actor&#39;s visibility list</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().insertListHead(thisActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, chunkIndex);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; ++thisActor.m_visibleChunkCount;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// Remove its children from this actor&#39;s visibility list</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (actorIndex != oldChunkActorIndex)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = chunks[chunkIndex];</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a> &lt; upperSupportChunkCount) <span class="comment">// Only need to deal with upper-support children</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (uint32_t childChunkIndex = chunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; childChunkIndex &lt; chunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>; ++childChunkIndex)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (chunkActorIndices[childChunkIndex] == actorIndex)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().removeFromList(thisActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, childChunkIndex);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; --thisActor.m_visibleChunkCount;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (parentChunkIndex != invalidIndex&lt;uint32_t&gt;())</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// If all of its siblings have the same index, then the parent will too. Otherwise, the parent will have an invalid index and its children will be visible</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; parentChunk = chunks[parentChunkIndex];</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">bool</span> uniform = <span class="keyword">true</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span> (uint32_t childChunkIndex = parentChunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; uniform &amp;&amp; childChunkIndex &lt; parentChunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>; ++childChunkIndex)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uniform = (newChunkActorIndex == chunkActorIndices[childChunkIndex]);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span> (!uniform)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; newChunkActorIndex = invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">for</span> (uint32_t childChunkIndex = parentChunk.<a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>; childChunkIndex &lt; parentChunk.<a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>; ++childChunkIndex)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">const</span> uint32_t childChunkActorIndex = chunkActorIndices[childChunkIndex];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (childChunkActorIndex != invalidIndex&lt;uint32_t&gt;() &amp;&amp; childChunkActorIndex == parentChunkActorIndex)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// The child was invisible. Add it to its actor&#39;s visibility list</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; VisibilityRep&amp; childChunkActor = actors[childChunkActorIndex];</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList&lt;uint32_t&gt;</a>().insertListHead(childChunkActor.m_firstVisibleChunkIndex, visibleChunkIndexLinks, childChunkIndex);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; ++childChunkActor.m_visibleChunkCount;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// Climb the hierarchy</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; chunkIndex = parentChunkIndex;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; chunkActorIndex = parentChunkActorIndex;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="keywordflow">while</span> (chunkIndex != invalidIndex&lt;uint32_t&gt;());</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTCHUNKHIERARCHY_H</span></div><div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_chunk_depth_first_it_html_a2e59706de3653f3161ab32c0170ce171"><div class="ttname"><a href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html#a2e59706de3653f3161ab32c0170ce171">Nv::Blast::ChunkDepthFirstIt::ChunkDepthFirstIt</a></div><div class="ttdeci">ChunkDepthFirstIt(const NvBlastChunk *chunks, uint32_t startChunkIndex, uint32_t chunkIndexLimit)</div><div class="ttdef"><b>Definition:</b> NvBlastChunkHierarchy.h:53</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_chunk_depth_first_it_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_chunk_depth_first_it.html">Nv::Blast::ChunkDepthFirstIt</a></div><div class="ttdef"><b>Definition:</b> NvBlastChunkHierarchy.h:49</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_iterator_base_html_ac78398c707b1b14795e9ba113ff6b432"><div class="ttname"><a href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">Nv::Blast::IteratorBase&lt; uint32_t &gt;::m_curr</a></div><div class="ttdeci">uint32_t m_curr</div><div class="ttdef"><b>Definition:</b> NvBlastIteratorBase.h:58</div></div>
diff --git a/docs/source_docs/files/_nv_blast_d_link_8h_source.html b/docs/source_docs/files/_nv_blast_d_link_8h_source.html
index 0c79248..f15189d 100755
--- a/docs/source_docs/files/_nv_blast_d_link_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_d_link_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_d_link_8h_source.html','');}
<div class="title">NvBlastDLink.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_d_link_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTDLINK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTDLINK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_index_d_link.html"> 43</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2"> 45</a></span>&#160; IndexType <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[2];</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#abc3c8aa8e9708bdc838bbd6345078329"> 53</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#abc3c8aa8e9708bdc838bbd6345078329">initLinksSolitary</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkCount)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">for</span> (IndexType i = 0; i &lt; linkCount; ++i)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; links[i].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; links[i].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a9624cfa421fd7fecb67d78e143d47dca"> 62</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a9624cfa421fd7fecb67d78e143d47dca">initLinksChain</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkCount)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (linkCount &gt; 0)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; links[0].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">for</span> (IndexType i = 1; i &lt; linkCount; ++i)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; links[i - 1].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = i;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; links[i].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = i - 1;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; links[linkCount - 1].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a55124c5dd5109aa95d2b1751352b0c54"> 76</a></span>&#160; IndexType <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a55124c5dd5109aa95d2b1751352b0c54">getAdj</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex, <span class="keywordtype">int</span> which)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[which &amp; 1];</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#ac4a779a50795386918e694c977b0a94c"> 81</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">remove</span>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>&amp; link = links[linkIndex];</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> IndexType adj0 = link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">const</span> IndexType adj1 = link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(adj1))</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; links[adj1].m_adj[0] = adj0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(adj0))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; links[adj0].m_adj[1] = adj1;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a2b0fb546e12c35ddbd515b4c17cf1c59"> 98</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a2b0fb546e12c35ddbd515b4c17cf1c59">isSolitary</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>&amp; link = links[linkIndex];</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0]) &amp;&amp; <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1]);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#ae08677ece60c50e0c17ceb8483cbb941"> 104</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#ae08677ece60c50e0c17ceb8483cbb941">insertListHead</a>(IndexType&amp; listHead, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(linkIndex));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(listHead))</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; links[listHead].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = linkIndex;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = listHead;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; listHead = linkIndex;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a4702080fa027fcd1a8dfabe0feceee47"> 115</a></span>&#160; IndexType <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a4702080fa027fcd1a8dfabe0feceee47">removeListHead</a>(IndexType&amp; listHead, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> IndexType linkIndex = listHead;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(linkIndex))</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; listHead = links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1];</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(listHead))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; links[listHead].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> linkIndex;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#af5338b775b990895b7e82ca827c8c0de"> 130</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#af5338b775b990895b7e82ca827c8c0de">removeFromList</a>(IndexType&amp; listHead, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(linkIndex));</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (listHead == linkIndex)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; listHead = links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1];</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">remove</span>(links, linkIndex);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html"> 142</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#a550877c2672f537aab653df56259e408"> 144</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a550877c2672f537aab653df56259e408">DLink</a>() : m_prev(nullptr), m_next(nullptr) {}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#a38fd49a69d32c1bc4a63af64356ba32e"> 146</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a38fd49a69d32c1bc4a63af64356ba32e">getPrev</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> m_prev;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325"> 151</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325">getNext</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> m_next;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_prev;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_next;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#ae5cffd78d183d0fa9be728d4c172c22f"> 160</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html"> 164</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a8f521717b64ae0b1f706f74995664745"> 167</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a8f521717b64ae0b1f706f74995664745">DList</a>() : m_head(nullptr), m_tail(nullptr) {}</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a64a4da6099c9bfb970c3bfcf847552ee"> 169</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a64a4da6099c9bfb970c3bfcf847552ee">isEmpty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((m_head == <span class="keyword">nullptr</span>) == (m_tail == <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> m_head == <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a3781405957ea8ec369cd52b26368032d"> 175</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a3781405957ea8ec369cd52b26368032d">isSolitary</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> link.m_prev == <span class="keyword">nullptr</span> &amp;&amp; link.m_next == <span class="keyword">nullptr</span> &amp;&amp; m_head != &amp;link;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a5cd799ed1219f4e2b23b357451485ebe"> 180</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a5cd799ed1219f4e2b23b357451485ebe">getHead</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> m_head;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a7076404dbf964a72d90852a4e56b39e4"> 185</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a7076404dbf964a72d90852a4e56b39e4">getTail</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> m_tail;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#abc2b63f21760aea5f27e3ced326c5c6a"> 190</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#abc2b63f21760aea5f27e3ced326c5c6a">insertHead</a>(<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(isSolitary(link));</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (!isSolitary(link))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; link.m_next = m_head;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (m_head != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_head-&gt;m_prev = &amp;link;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_head = &amp;link;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (m_tail == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_tail = &amp;link;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#aed58b1884e669c36c0b5232fb59860de"> 212</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#aed58b1884e669c36c0b5232fb59860de">insertTail</a>(<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(isSolitary(link));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (!isSolitary(link))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; link.m_prev = m_tail;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (m_tail != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_tail-&gt;m_next = &amp;link;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_tail = &amp;link;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (m_head == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_head = &amp;link;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#af1fb041e0c0840e8fefbbca53dff18cb"> 234</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">remove</span>(<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (link.m_prev != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; link.m_prev-&gt;m_next = link.m_next;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (m_head == &amp;link)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_head = link.m_next;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (link.m_next != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; link.m_next-&gt;m_prev = link.m_prev;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (m_tail == &amp;link)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_tail = link.m_prev;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; link.m_next = link.m_prev = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html"> 259</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html">It</a></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12ca5324aaea734beed6e12439ef7a6f9720"> 262</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> { <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12ca5324aaea734beed6e12439ef7a6f9720">Reverse</a>, Forward };</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a580ed385c7d55715697c97d68a99c419"> 264</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a580ed385c7d55715697c97d68a99c419">It</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a>&amp; list, <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> dir = Forward) : m_curr(dir == Forward ? list.getHead() : list.getTail()) {}</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a49508e36fac324c3cadc37f8175acbbc"> 267</a></span>&#160; <span class="keyword">operator</span> bool()<span class="keyword"> const</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> m_curr != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a655d0d60df2400e740a61ee7df7ad6db"> 273</a></span>&#160; <span class="keyword">operator</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>*() <span class="keyword">const</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> m_curr;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#abf7135f7ab10a319744e3465d32d8d60"> 279</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* operator ++ ()</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> m_curr = m_curr-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325">getNext</a>();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a7297b22fa7e729f8d187413906cdb743"> 285</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* operator -- ()</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> m_curr = m_curr-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a38fd49a69d32c1bc4a63af64356ba32e">getPrev</a>();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_curr;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; };</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_head;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_tail;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;};</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;} <span class="comment">// end namespace Blast</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;} <span class="comment">// end namespace Nv</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTDLINK_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_d_list_html_a8f521717b64ae0b1f706f74995664745"><div class="ttname"><a href="class_nv_1_1_blast_1_1_d_list.html#a8f521717b64ae0b1f706f74995664745">Nv::Blast::DList::DList</a></div><div class="ttdeci">DList()</div><div class="ttdef"><b>Definition:</b> NvBlastDLink.h:167</div></div>
+<a href="_nv_blast_d_link_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTDLINK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTDLINK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_index_d_link.html"> 43</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2"> 45</a></span>&#160; IndexType <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[2];</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html">IndexDList</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#abc3c8aa8e9708bdc838bbd6345078329"> 53</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#abc3c8aa8e9708bdc838bbd6345078329">initLinksSolitary</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkCount)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">for</span> (IndexType i = 0; i &lt; linkCount; ++i)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; links[i].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; links[i].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a9624cfa421fd7fecb67d78e143d47dca"> 62</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a9624cfa421fd7fecb67d78e143d47dca">initLinksChain</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkCount)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (linkCount &gt; 0)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; links[0].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">for</span> (IndexType i = 1; i &lt; linkCount; ++i)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; links[i - 1].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = i;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; links[i].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = i - 1;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; links[linkCount - 1].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a55124c5dd5109aa95d2b1751352b0c54"> 76</a></span>&#160; IndexType <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a55124c5dd5109aa95d2b1751352b0c54">getAdj</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex, <span class="keywordtype">int</span> which)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[which &amp; 1];</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#ac4a779a50795386918e694c977b0a94c"> 81</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">remove</span>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>&amp; link = links[linkIndex];</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> IndexType adj0 = link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">const</span> IndexType adj1 = link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(adj1))</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; links[adj1].m_adj[0] = adj0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(adj0))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; links[adj0].m_adj[1] = adj1;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a2b0fb546e12c35ddbd515b4c17cf1c59"> 98</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a2b0fb546e12c35ddbd515b4c17cf1c59">isSolitary</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>&amp; link = links[linkIndex];</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0]) &amp;&amp; <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(link.<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1]);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#ae08677ece60c50e0c17ceb8483cbb941"> 104</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#ae08677ece60c50e0c17ceb8483cbb941">insertListHead</a>(IndexType&amp; listHead, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(linkIndex));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(listHead))</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; links[listHead].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = linkIndex;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = listHead;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; listHead = linkIndex;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#a4702080fa027fcd1a8dfabe0feceee47"> 115</a></span>&#160; IndexType <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#a4702080fa027fcd1a8dfabe0feceee47">removeListHead</a>(IndexType&amp; listHead, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> IndexType linkIndex = listHead;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(linkIndex))</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; listHead = links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1];</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(listHead))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; links[listHead].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[0] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1] = invalidIndex&lt;IndexType&gt;();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> linkIndex;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_index_d_list.html#af5338b775b990895b7e82ca827c8c0de"> 130</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_index_d_list.html#af5338b775b990895b7e82ca827c8c0de">removeFromList</a>(IndexType&amp; listHead, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links, IndexType linkIndex)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(linkIndex));</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (listHead == linkIndex)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; listHead = links[linkIndex].<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">m_adj</a>[1];</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">remove</span>(links, linkIndex);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html"> 142</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#a550877c2672f537aab653df56259e408"> 144</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a550877c2672f537aab653df56259e408">DLink</a>() : m_prev(nullptr), m_next(nullptr) {}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#a38fd49a69d32c1bc4a63af64356ba32e"> 146</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a38fd49a69d32c1bc4a63af64356ba32e">getPrev</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> m_prev;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325"> 151</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325">getNext</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> m_next;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_prev;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_next;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_d_link.html#ae5cffd78d183d0fa9be728d4c172c22f"> 160</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html"> 164</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a8f521717b64ae0b1f706f74995664745"> 167</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a8f521717b64ae0b1f706f74995664745">DList</a>() : m_head(nullptr), m_tail(nullptr) {}</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a64a4da6099c9bfb970c3bfcf847552ee"> 169</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a64a4da6099c9bfb970c3bfcf847552ee">isEmpty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((m_head == <span class="keyword">nullptr</span>) == (m_tail == <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> m_head == <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a3781405957ea8ec369cd52b26368032d"> 175</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a3781405957ea8ec369cd52b26368032d">isSolitary</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> link.m_prev == <span class="keyword">nullptr</span> &amp;&amp; link.m_next == <span class="keyword">nullptr</span> &amp;&amp; m_head != &amp;link;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a5cd799ed1219f4e2b23b357451485ebe"> 180</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a5cd799ed1219f4e2b23b357451485ebe">getHead</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> m_head;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#a7076404dbf964a72d90852a4e56b39e4"> 185</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#a7076404dbf964a72d90852a4e56b39e4">getTail</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> m_tail;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#abc2b63f21760aea5f27e3ced326c5c6a"> 190</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#abc2b63f21760aea5f27e3ced326c5c6a">insertHead</a>(<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(isSolitary(link));</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (!isSolitary(link))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; link.m_next = m_head;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (m_head != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_head-&gt;m_prev = &amp;link;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_head = &amp;link;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (m_tail == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_tail = &amp;link;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#aed58b1884e669c36c0b5232fb59860de"> 212</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html#aed58b1884e669c36c0b5232fb59860de">insertTail</a>(<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(isSolitary(link));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (!isSolitary(link))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; link.m_prev = m_tail;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (m_tail != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_tail-&gt;m_next = &amp;link;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_tail = &amp;link;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (m_head == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_head = &amp;link;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list.html#af1fb041e0c0840e8fefbbca53dff18cb"> 234</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">remove</span>(<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>&amp; link)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (link.m_prev != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; link.m_prev-&gt;m_next = link.m_next;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (m_head == &amp;link)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_head = link.m_next;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (link.m_next != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; link.m_next-&gt;m_prev = link.m_prev;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (m_tail == &amp;link)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_tail = link.m_prev;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; link.m_next = link.m_prev = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html"> 259</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html">It</a></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12ca5324aaea734beed6e12439ef7a6f9720"> 262</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> { <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12ca5324aaea734beed6e12439ef7a6f9720">Reverse</a>, Forward };</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a580ed385c7d55715697c97d68a99c419"> 264</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a580ed385c7d55715697c97d68a99c419">It</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a>&amp; list, <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> dir = Forward) : m_curr(dir == Forward ? list.getHead() : list.getTail()) {}</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a49508e36fac324c3cadc37f8175acbbc"> 267</a></span>&#160; <span class="keyword">operator</span> bool()<span class="keyword"> const</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> m_curr != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a655d0d60df2400e740a61ee7df7ad6db"> 273</a></span>&#160; <span class="keyword">operator</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>*() <span class="keyword">const</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> m_curr;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#abf7135f7ab10a319744e3465d32d8d60"> 279</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* operator ++ ()</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> m_curr = m_curr-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325">getNext</a>();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#a7297b22fa7e729f8d187413906cdb743"> 285</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* operator -- ()</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> m_curr = m_curr-&gt;<a class="code" href="struct_nv_1_1_blast_1_1_d_link.html#a38fd49a69d32c1bc4a63af64356ba32e">getPrev</a>();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_curr;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; };</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_head;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* m_tail;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;};</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;} <span class="comment">// end namespace Blast</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;} <span class="comment">// end namespace Nv</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTDLINK_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_d_list_html_a8f521717b64ae0b1f706f74995664745"><div class="ttname"><a href="class_nv_1_1_blast_1_1_d_list.html#a8f521717b64ae0b1f706f74995664745">Nv::Blast::DList::DList</a></div><div class="ttdeci">DList()</div><div class="ttdef"><b>Definition:</b> NvBlastDLink.h:167</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_d_list_html_aed58b1884e669c36c0b5232fb59860de"><div class="ttname"><a href="class_nv_1_1_blast_1_1_d_list.html#aed58b1884e669c36c0b5232fb59860de">Nv::Blast::DList::insertTail</a></div><div class="ttdeci">bool insertTail(DLink &amp;link)</div><div class="ttdef"><b>Definition:</b> NvBlastDLink.h:212</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_index_d_link_html_af3f0c6aa0eca4628cf6292a31b910ec2"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_index_d_link.html#af3f0c6aa0eca4628cf6292a31b910ec2">Nv::Blast::IndexDLink::m_adj</a></div><div class="ttdeci">IndexType m_adj[2]</div><div class="ttdef"><b>Definition:</b> NvBlastDLink.h:45</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_d_link_html_a2a5a88b44ec3cd63ee67be1a0bee9325"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_d_link.html#a2a5a88b44ec3cd63ee67be1a0bee9325">Nv::Blast::DLink::getNext</a></div><div class="ttdeci">DLink * getNext() const</div><div class="ttdef"><b>Definition:</b> NvBlastDLink.h:151</div></div>
diff --git a/docs/source_docs/files/_nv_blast_debug_render_8h_source.html b/docs/source_docs/files/_nv_blast_debug_render_8h_source.html
index 0dc15f3..06cd429 100755
--- a/docs/source_docs/files/_nv_blast_debug_render_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_debug_render_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_debug_render_8h_source.html'
<div class="title">NvBlastDebugRender.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_debug_render_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html"> 41</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634"> 43</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, uint32_t c)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; : <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>(p0), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>(c), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>(p1), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>(c) {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c"> 46</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9"> 47</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb"> 48</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55"> 49</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb"> 58</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb">lines</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a"> 59</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a">lineCount</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_debug_line_html_aae5d9d324ac30cec64094d9d298ce634"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">Nv::Blast::DebugLine::DebugLine</a></div><div class="ttdeci">DebugLine(const NvcVec3 &amp;p0, const NvcVec3 &amp;p1, uint32_t c)</div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:43</div></div>
+<a href="_nv_blast_debug_render_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html"> 41</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634"> 43</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, uint32_t c)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; : <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>(p0), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>(c), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>(p1), <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>(c) {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c"> 46</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a900f59e8ec5d372ff24af7d90f505d1c">pos0</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9"> 47</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a78ebd9ea3b8a753f1f4df5605a26c9c9">color0</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb"> 48</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a931c30a7891661f736eb71430ae7dcdb">pos1</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55"> 49</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html#a4cc69e9a66bb17d48c52b8e68fea0a55">color1</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb"> 58</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#aa2bdb627be47cc0fd175d4ca61958fcb">lines</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a"> 59</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a">lineCount</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_debug_line_html_aae5d9d324ac30cec64094d9d298ce634"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_line.html#aae5d9d324ac30cec64094d9d298ce634">Nv::Blast::DebugLine::DebugLine</a></div><div class="ttdeci">DebugLine(const NvcVec3 &amp;p0, const NvcVec3 &amp;p1, uint32_t c)</div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:43</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_debug_buffer_html_af6f3565fb58a4218b8f50982557b1a9a"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_buffer.html#af6f3565fb58a4218b8f50982557b1a9a">Nv::Blast::DebugBuffer::lineCount</a></div><div class="ttdeci">uint32_t lineCount</div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:59</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_debug_buffer_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a></div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:56</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_debug_line_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_debug_line.html">Nv::Blast::DebugLine</a></div><div class="ttdef"><b>Definition:</b> NvBlastDebugRender.h:41</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html b/docs/source_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html
index 169c88d..ccf0960 100755
--- a/docs/source_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_apex_import_tool_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_apex_import_tool_8h_sour
<div class="title">NvBlastExtApexImportTool.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_apex_import_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_collision_builder_8h.html">NvBlastExtPxCollisionBuilder.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;nvparameterized\NvSerializer.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>PxFoundation;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacephysx_1_1general___px_i_o_stream2.html"> 46</a></span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_parameterized.html"> 52</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv_parameterized.html">NvParameterized</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">class </span>Interface;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacenvidia.html"> 57</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacenvidia.html">nvidia</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacenvidia_1_1apex.html"> 59</a></span>&#160;<span class="keyword">namespace </span>apex</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ApexSDK;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ModuleDestructible;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>DestructibleAsset;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx_1_1general___px_i_o_stream2.html">physx::general_PxIOStream2</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_apex_importer.html"> 77</a></span>&#160;<span class="keyword">namespace </span>ApexImporter</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html"> 80</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59a2551cc1be833bbdfb49cb4b5c8d771bf"> 91</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> { EXACT, FORCED, MODE_COUNT };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e"> 93</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e">ApexImporterConfig</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; setDefaults();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153"> 98</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153">setDefaults</a>()</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; infSearchMode = EXACT;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560"> 102</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560">infSearchMode</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">class </span>ApexDestruction;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html"> 112</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> loadAssetFromFile(nvidia::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData&amp; data);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; config);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> importRendermesh(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, <span class="keyword">const</span> NvParameterized::Interface* assetNvIfc, <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">Nv::Blast::ExporterMeshData</a>* outputData, <span class="keyword">const</span> <span class="keywordtype">char</span>* materialsDir);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">bool</span> saveAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, nvidia::PxFileBuf* stream);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> getCollisionGeometry(<span class="keyword">const</span> NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; apexChunkFlags, std::vector&lt;ExtPxAssetDesc::ChunkDesc&gt;&amp; physicsChunks,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::vector&lt;ExtPxAssetDesc::SubchunkDesc&gt;&amp; physicsSubchunks, std::vector&lt;std::vector&lt;CollisionHull*&gt; &gt;&amp; hullsDesc);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53"> 183</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53">getCollisionBuilder</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> m_collisionBuilder;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">bool</span> isValid();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d"> 192</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d">getPxSdk</a>() { <span class="keywordflow">return</span> m_PhysxSDK; }</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8"> 193</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8">getCooking</a>() { <span class="keywordflow">return</span> m_Cooking; };</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">bool</span> importApexAssetInternal(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDesc, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; configDesc);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af"> 204</a></span>&#160; physx::PxFoundation* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af">m_Foundation</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177"> 205</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177">m_PhysxSDK</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd"> 206</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd">m_Cooking</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f"> 208</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f">m_collisionBuilder</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;};</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace ApexImporter</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_apex_import_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_collision_builder_8h.html">NvBlastExtPxCollisionBuilder.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;nvparameterized\NvSerializer.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>PxFoundation;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacephysx_1_1general___px_i_o_stream2.html"> 46</a></span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_parameterized.html"> 52</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv_parameterized.html">NvParameterized</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">class </span>Interface;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacenvidia.html"> 57</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacenvidia.html">nvidia</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacenvidia_1_1apex.html"> 59</a></span>&#160;<span class="keyword">namespace </span>apex</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ApexSDK;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ModuleDestructible;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>DestructibleAsset;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx_1_1general___px_i_o_stream2.html">physx::general_PxIOStream2</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_apex_importer.html"> 77</a></span>&#160;<span class="keyword">namespace </span>ApexImporter</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html"> 80</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59a2551cc1be833bbdfb49cb4b5c8d771bf"> 91</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> { EXACT, FORCED, MODE_COUNT };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e"> 93</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e">ApexImporterConfig</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; setDefaults();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153"> 98</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#ad0e01dc02a42840f32afa2ee319f9153">setDefaults</a>()</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; infSearchMode = EXACT;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560"> 102</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a0d625b530a74994e1a7744c8331a6d59">InterfaceSearchMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560">infSearchMode</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">class </span>ApexDestruction;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html"> 112</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> loadAssetFromFile(nvidia::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData&amp; data);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> importApexAsset(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDescriptors, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; config);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> importRendermesh(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, <span class="keyword">const</span> NvParameterized::Interface* assetNvIfc, <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">Nv::Blast::ExporterMeshData</a>* outputData, <span class="keyword">const</span> <span class="keywordtype">char</span>* materialsDir);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">bool</span> saveAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, nvidia::PxFileBuf* stream);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> getCollisionGeometry(<span class="keyword">const</span> NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; apexChunkFlags, std::vector&lt;ExtPxAssetDesc::ChunkDesc&gt;&amp; physicsChunks,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::vector&lt;ExtPxAssetDesc::SubchunkDesc&gt;&amp; physicsSubchunks, std::vector&lt;std::vector&lt;CollisionHull*&gt; &gt;&amp; hullsDesc);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53"> 183</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ae5620d0d6ed1beb316b85e46d3028d53">getCollisionBuilder</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> m_collisionBuilder;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">bool</span> isValid();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d"> 192</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a015bbfbc6490c8be1283e23c95a9e69d">getPxSdk</a>() { <span class="keywordflow">return</span> m_PhysxSDK; }</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8"> 193</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a1c3e20969c95c5c39e77543e49a2dbb8">getCooking</a>() { <span class="keywordflow">return</span> m_Cooking; };</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">bool</span> importApexAssetInternal(std::vector&lt;uint32_t&gt;&amp; chunkReorderInvMap, NvParameterized::Interface* assetNvIfc,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; std::vector&lt;NvBlastChunkDesc&gt;&amp; chunkDescriptors, std::vector&lt;NvBlastBondDesc&gt;&amp; bondDesc, std::vector&lt;uint32_t&gt;&amp; flags,</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html">ApexImporterConfig</a>&amp; configDesc);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html">ApexImportTool</a>&amp;);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af"> 204</a></span>&#160; physx::PxFoundation* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aaad46c0766884673960f8f2205b926af">m_Foundation</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177"> 205</a></span>&#160; physx::PxPhysics* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#a7fc6ad22ebb8a62d777d5e9633163177">m_PhysxSDK</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd"> 206</a></span>&#160; physx::PxCooking* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#ad5c4c3553756255ef278dddce2fe1ccd">m_Cooking</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f"> 208</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* <a class="code" href="class_nv_1_1_blast_1_1_apex_importer_1_1_apex_import_tool.html#aa8725c6a88d96142713e570bc936a61f">m_collisionBuilder</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;};</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace ApexImporter</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAPEXIMPORTTOOL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config_html_a92d34d1b3881431877e1f46dd6aa4c6e"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a92d34d1b3881431877e1f46dd6aa4c6e">Nv::Blast::ApexImporter::ApexImporterConfig::ApexImporterConfig</a></div><div class="ttdeci">ApexImporterConfig()</div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:93</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config_html_a644c53bd1c5a0889819f2d8a77fe2560"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_apex_importer_1_1_apex_importer_config.html#a644c53bd1c5a0889819f2d8a77fe2560">Nv::Blast::ApexImporter::ApexImporterConfig::infSearchMode</a></div><div class="ttdeci">InterfaceSearchMode infSearchMode</div><div class="ttdef"><b>Definition:</b> NvBlastExtApexImportTool.h:102</div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_apex_shared_parts_8h_source.html b/docs/source_docs/files/_nv_blast_ext_apex_shared_parts_8h_source.html
index 2ba927f..7c38ec5 100755
--- a/docs/source_docs/files/_nv_blast_ext_apex_shared_parts_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_apex_shared_parts_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_apex_shared_parts_8h_sou
<div class="title">NvBlastExtApexSharedParts.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_apex_shared_parts_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAPEXSHAREDPARTS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAPEXSHAREDPARTS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacephysx.html"> 34</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span>PxVec3;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxBounds3;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_separation.html">Separation</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html#a8dd4bdb9ec23e9faf6b1e429fbb93cb1"> 48</a></span>&#160; physx::PxPlane <a class="code" href="struct_nv_1_1_blast_1_1_separation.html#a8dd4bdb9ec23e9faf6b1e429fbb93cb1">plane</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html#ab21a1df966fa48dfce8aaf58847b5c70"> 49</a></span>&#160; <span class="keywordtype">float</span> min0, max0, <a class="code" href="struct_nv_1_1_blast_1_1_separation.html#ab21a1df966fa48dfce8aaf58847b5c70">min1</a>, max1;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html#ac2bbb249c734d2227bee2338f4681a66"> 51</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_separation.html#ac2bbb249c734d2227bee2338f4681a66">getDistance</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> physx::PxMax(min0 - max1, min1 - max0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a5cdab436d8570fca3e16796e0f9f05f8">importerHullsInProximityApexFree</a>( uint32_t hull0Count, <span class="keyword">const</span> physx::PxVec3* hull0, physx::PxBounds3&amp; hull0Bounds, <span class="keyword">const</span> physx::PxTransform&amp; localToWorldRT0In, <span class="keyword">const</span> physx::PxVec3&amp; scale0In,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint32_t hull1Count, <span class="keyword">const</span> physx::PxVec3* hull1, physx::PxBounds3&amp; hull1Bounds, <span class="keyword">const</span> physx::PxTransform&amp; localToWorldRT1In, <span class="keyword">const</span> physx::PxVec3&amp; scale1In,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; physx::PxF32 maxDistance, <a class="code" href="struct_nv_1_1_blast_1_1_separation.html">Separation</a>* separation);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAPEXSHAREDPARTS_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_apex_shared_parts_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAPEXSHAREDPARTS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAPEXSHAREDPARTS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacephysx.html"> 34</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span>PxVec3;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxBounds3;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_separation.html">Separation</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html#a8dd4bdb9ec23e9faf6b1e429fbb93cb1"> 48</a></span>&#160; physx::PxPlane <a class="code" href="struct_nv_1_1_blast_1_1_separation.html#a8dd4bdb9ec23e9faf6b1e429fbb93cb1">plane</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html#ab21a1df966fa48dfce8aaf58847b5c70"> 49</a></span>&#160; <span class="keywordtype">float</span> min0, max0, <a class="code" href="struct_nv_1_1_blast_1_1_separation.html#ab21a1df966fa48dfce8aaf58847b5c70">min1</a>, max1;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_separation.html#ac2bbb249c734d2227bee2338f4681a66"> 51</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_separation.html#ac2bbb249c734d2227bee2338f4681a66">getDistance</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> physx::PxMax(min0 - max1, min1 - max0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a5cdab436d8570fca3e16796e0f9f05f8">importerHullsInProximityApexFree</a>( uint32_t hull0Count, <span class="keyword">const</span> physx::PxVec3* hull0, physx::PxBounds3&amp; hull0Bounds, <span class="keyword">const</span> physx::PxTransform&amp; localToWorldRT0In, <span class="keyword">const</span> physx::PxVec3&amp; scale0In,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint32_t hull1Count, <span class="keyword">const</span> physx::PxVec3* hull1, physx::PxBounds3&amp; hull1Bounds, <span class="keyword">const</span> physx::PxTransform&amp; localToWorldRT1In, <span class="keyword">const</span> physx::PxVec3&amp; scale1In,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; physx::PxF32 maxDistance, <a class="code" href="struct_nv_1_1_blast_1_1_separation.html">Separation</a>* separation);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAPEXSHAREDPARTS_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a5cdab436d8570fca3e16796e0f9f05f8"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a5cdab436d8570fca3e16796e0f9f05f8">Nv::Blast::importerHullsInProximityApexFree</a></div><div class="ttdeci">bool importerHullsInProximityApexFree(uint32_t hull0Count, const physx::PxVec3 *hull0, physx::PxBounds3 &amp;hull0Bounds, const physx::PxTransform &amp;localToWorldRT0In, const physx::PxVec3 &amp;scale0In, uint32_t hull1Count, const physx::PxVec3 *hull1, physx::PxBounds3 &amp;hull1Bounds, const physx::PxTransform &amp;localToWorldRT1In, const physx::PxVec3 &amp;scale1In, physx::PxF32 maxDistance, Separation *separation)</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_separation_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_separation.html">Nv::Blast::Separation</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:46</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_asset_utils_8h_source.html b/docs/source_docs/files/_nv_blast_ext_asset_utils_8h_source.html
index c04f8ef..f177c1a 100755
--- a/docs/source_docs/files/_nv_blast_ext_asset_utils_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_asset_utils_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_asset_utils_8h_source.ht
<div class="title">NvBlastExtAssetUtils.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_asset_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_ext_asset_utils_8h.html#a93400dd7095443ef1af37d43077a4e8a">NvBlastExtAssetUtilsAddWorldBonds</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;(</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">const</span> uint32_t* worldBoundChunks,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t worldBoundChunkCount,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* bondDirections,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">const</span> uint32_t* bondUserData</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">componentIndices</a>[2]; </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#af3bdbe570cddbaa96d3a5269e7d1385d">NvBlastExtAssetUtilsMergeAssets</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;(</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t componentCount,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>* newBondDescs,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint32_t newBondCount,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t* chunkIndexOffsets,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint32_t chunkReorderMapSize</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#a49b93a2a5d9b21865bf445c0e2ffc733">NvBlastExtAssetTransformInPlace</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;(</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scale,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="ttc" id="_nv_blast_ext_asset_utils_8h_html_a93400dd7095443ef1af37d43077a4e8a"><div class="ttname"><a href="_nv_blast_ext_asset_utils_8h.html#a93400dd7095443ef1af37d43077a4e8a">NvBlastExtAssetUtilsAddWorldBonds</a></div><div class="ttdeci">NVBLAST_API NvBlastAsset * NvBlastExtAssetUtilsAddWorldBonds(const NvBlastAsset *asset, const uint32_t *worldBoundChunks, uint32_t worldBoundChunkCount, const NvcVec3 *bondDirections, const uint32_t *bondUserData)</div></div>
+<a href="_nv_blast_ext_asset_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTASSETUTILS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="_nv_blast_ext_asset_utils_8h.html#a93400dd7095443ef1af37d43077a4e8a">NvBlastExtAssetUtilsAddWorldBonds</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;(</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">const</span> uint32_t* worldBoundChunks,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t worldBoundChunkCount,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* bondDirections,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">const</span> uint32_t* bondUserData</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">componentIndices</a>[2]; </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#af3bdbe570cddbaa96d3a5269e7d1385d">NvBlastExtAssetUtilsMergeAssets</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;(</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t componentCount,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>* newBondDescs,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint32_t newBondCount,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t* chunkIndexOffsets,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t* chunkReorderMap,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint32_t chunkReorderMapSize</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_asset_utils_8h.html#a49b93a2a5d9b21865bf445c0e2ffc733">NvBlastExtAssetTransformInPlace</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;(</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scale,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTASSETUTILS_H</span></div><div class="ttc" id="_nv_blast_ext_asset_utils_8h_html_a93400dd7095443ef1af37d43077a4e8a"><div class="ttname"><a href="_nv_blast_ext_asset_utils_8h.html#a93400dd7095443ef1af37d43077a4e8a">NvBlastExtAssetUtilsAddWorldBonds</a></div><div class="ttdeci">NVBLAST_API NvBlastAsset * NvBlastExtAssetUtilsAddWorldBonds(const NvBlastAsset *asset, const uint32_t *worldBoundChunks, uint32_t worldBoundChunkCount, const NvcVec3 *bondDirections, const uint32_t *bondUserData)</div></div>
<div class="ttc" id="struct_nv_blast_ext_asset_utils_bond_desc_html_aef6248c9f3faf783b45b735d919eb8c4"><div class="ttname"><a href="struct_nv_blast_ext_asset_utils_bond_desc.html#aef6248c9f3faf783b45b735d919eb8c4">NvBlastExtAssetUtilsBondDesc::componentIndices</a></div><div class="ttdeci">uint32_t componentIndices[2]</div><div class="ttdoc">The asset component for the corresponding chunkIndices[2] value. </div><div class="ttdef"><b>Definition:</b> NvBlastExtAssetUtils.h:68</div></div>
<div class="ttc" id="_nv_blast_ext_asset_utils_8h_html_af3bdbe570cddbaa96d3a5269e7d1385d"><div class="ttname"><a href="_nv_blast_ext_asset_utils_8h.html#af3bdbe570cddbaa96d3a5269e7d1385d">NvBlastExtAssetUtilsMergeAssets</a></div><div class="ttdeci">NVBLAST_API NvBlastAssetDesc NvBlastExtAssetUtilsMergeAssets(const NvBlastAsset **components, const NvcVec3 *scales, const NvcQuat *rotations, const NvcVec3 *translations, uint32_t componentCount, const NvBlastExtAssetUtilsBondDesc *newBondDescs, uint32_t newBondCount, uint32_t *chunkIndexOffsets, uint32_t *chunkReorderMap, uint32_t chunkReorderMapSize)</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_8h_source.html
index cd608e8..4d85208 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_8h_source.html
<div class="title">NvBlastExtAuthoring.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>VoronoiSitesGenerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>RandomGeneratorBase;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>FractureTool;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>ConvexMeshBuilder;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>BlastBondGenerator;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>MeshCleaner;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>PatternGenerator;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>Grid;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>GridWalker;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#aed8387fc7672e9935031f8cc66caf799">NvBlastExtAuthoringCreateMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* positions, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* normals, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* uv,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uint32_t verticesCount, <span class="keyword">const</span> uint32_t* indices, uint32_t indicesCount);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a302daaa2f081fb777726ef6e5271f568">NvBlastExtAuthoringCreateMeshOnlyTriangles</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, uint32_t verticesCount, uint32_t* indices,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint32_t indexCount, <span class="keywordtype">void</span>* materials = <span class="keyword">nullptr</span>, uint32_t materialStride = 4);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a887847d49fc36c3ea63fd3a6d2a6b2ae">NvBlastExtAuthoringCreateMeshFromFacets</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, <span class="keyword">const</span> <span class="keywordtype">void</span>* edges, <span class="keyword">const</span> <span class="keywordtype">void</span>* facets,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a>*</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#ac65c865d65168418a3f4cc7b563096ed">NvBlastExtAuthoringCreateVoronoiSitesGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* rng);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a5f493f939d13616983cd56942757c77c">NvBlastExtAuthoringCreateCutoutSet</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a0c09c0fc47ac3e47511e96375e212eca">NvBlastExtAuthoringBuildCutoutSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>&amp; cutoutSet, <span class="keyword">const</span> uint8_t* pixelBuffer, uint32_t bufferWidth,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint32_t bufferHeight, <span class="keywordtype">float</span> segmentationErrorThreshold, <span class="keywordtype">float</span> snapThreshold,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> periodic, <span class="keywordtype">bool</span> expandGaps);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a32494843df016048528ed3e616caa1d1">NvBlastExtAuthoringCreateFractureTool</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a3ad55b9b2045e5650c7ff789fc6689ee">NvBlastExtAuthoringCreateBondGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* builder);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> int32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#ac68e1a659a35921a6bf9dc5b9b8c8cc2">NvBlastExtAuthoringBuildMeshConvexDecomposition</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Nv::Blast::Triangle</a>* mesh,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint32_t triangleCount,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; params,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; convexes);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aab1596d7b0c4cef85b0e4680d69429e4">NvBlastExtAuthoringTrimCollisionGeometry</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb, uint32_t chunksCount,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>** in, <span class="keyword">const</span> uint32_t* chunkDepth);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aea852705e03c2fcecfc3a73fbcbf2b36">NvBlastExtAuthoringTransformCollisionHullInPlace</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a8cc4536f6c0d481e7dfcf3c366ca5e33">NvBlastExtAuthoringTransformCollisionHull</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>*</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a163b66fbf427950ae760cada3d61598e">NvBlastExtAuthoringProcessFracture</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>&amp; bondGenerator,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t defaultSupportDepth = -1);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#ace4b175a19c5a5b9f5cadb8b6c7c59e3">NvBlastExtAuthoringReleaseAuthoringResultCollision</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a222cfae693431f826d20471e4f6848e1">NvBlastExtAuthoringReleaseAuthoringResult</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#af7f3ac8b4a132b584eff789062a59dfd">NvBlastExtAuthoringUpdateGraphicsMesh</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a27195d91a3840bc8507e1b4cf53dcbd8">NvBlastExtAuthoringBuildCollisionMeshes</a>(<a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; uint32_t chunksToProcessCount, uint32_t* chunksToProcess);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#ad8620704c7b10e310df502a8c8998a17">NvBlastExtAuthoringCreateMeshCleaner</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#ad0dfcb6b6b06fd0560aa55e4dcddfeb9">NvBlastExtAuthoringFindAssetConnectingBonds</a>(</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> uint32_t** convexHullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*** chunkHulls, uint32_t componentCount,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>*&amp; newBondDescs, <span class="keywordtype">float</span> maxSeparation = 0.0f);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">Nv::Blast::PatternGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a3b4d480947621359034465558d9c5a30">NvBlastExtAuthoringCreatePatternGenerator</a>();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#aaca9a59cb41be7dd861dc96cb18e21d6">NvBlastExtAuthoringCreateGridAccelerator</a>(uint32_t resolution, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">Nv::Blast::GridWalker</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a94df8330156975a933639cfaf2774a72">NvBlastExtAuthoringCreateGridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* parent);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORING_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_8h_html_a3b4d480947621359034465558d9c5a30"><div class="ttname"><a href="_nv_blast_ext_authoring_8h.html#a3b4d480947621359034465558d9c5a30">NvBlastExtAuthoringCreatePatternGenerator</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::PatternGenerator * NvBlastExtAuthoringCreatePatternGenerator()</div></div>
+<a href="_nv_blast_ext_authoring_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORING_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>VoronoiSitesGenerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>RandomGeneratorBase;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>FractureTool;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>ConvexMeshBuilder;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>BlastBondGenerator;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>MeshCleaner;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>PatternGenerator;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>Grid;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>GridWalker;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#aed8387fc7672e9935031f8cc66caf799">NvBlastExtAuthoringCreateMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* positions, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* normals, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* uv,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uint32_t verticesCount, <span class="keyword">const</span> uint32_t* indices, uint32_t indicesCount);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a302daaa2f081fb777726ef6e5271f568">NvBlastExtAuthoringCreateMeshOnlyTriangles</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, uint32_t verticesCount, uint32_t* indices,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint32_t indexCount, <span class="keywordtype">void</span>* materials = <span class="keyword">nullptr</span>, uint32_t materialStride = 4);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>*</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a887847d49fc36c3ea63fd3a6d2a6b2ae">NvBlastExtAuthoringCreateMeshFromFacets</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* vertices, <span class="keyword">const</span> <span class="keywordtype">void</span>* edges, <span class="keyword">const</span> <span class="keywordtype">void</span>* facets,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a>*</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#ac65c865d65168418a3f4cc7b563096ed">NvBlastExtAuthoringCreateVoronoiSitesGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* rng);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a5f493f939d13616983cd56942757c77c">NvBlastExtAuthoringCreateCutoutSet</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a0c09c0fc47ac3e47511e96375e212eca">NvBlastExtAuthoringBuildCutoutSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a>&amp; cutoutSet, <span class="keyword">const</span> uint8_t* pixelBuffer, uint32_t bufferWidth,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint32_t bufferHeight, <span class="keywordtype">float</span> segmentationErrorThreshold, <span class="keywordtype">float</span> snapThreshold,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> periodic, <span class="keywordtype">bool</span> expandGaps);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a32494843df016048528ed3e616caa1d1">NvBlastExtAuthoringCreateFractureTool</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a3ad55b9b2045e5650c7ff789fc6689ee">NvBlastExtAuthoringCreateBondGenerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* builder);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> int32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#ac68e1a659a35921a6bf9dc5b9b8c8cc2">NvBlastExtAuthoringBuildMeshConvexDecomposition</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Nv::Blast::Triangle</a>* mesh,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint32_t triangleCount,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; params,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; convexes);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aab1596d7b0c4cef85b0e4680d69429e4">NvBlastExtAuthoringTrimCollisionGeometry</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>* cmb, uint32_t chunksCount,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>** in, <span class="keyword">const</span> uint32_t* chunkDepth);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#aea852705e03c2fcecfc3a73fbcbf2b36">NvBlastExtAuthoringTransformCollisionHullInPlace</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a8cc4536f6c0d481e7dfcf3c366ca5e33">NvBlastExtAuthoringTransformCollisionHull</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>* hull, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scaling,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotation, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translation);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>*</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<a class="code" href="_nv_blast_ext_authoring_8h.html#a163b66fbf427950ae760cada3d61598e">NvBlastExtAuthoringProcessFracture</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">Nv::Blast::BlastBondGenerator</a>&amp; bondGenerator,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t defaultSupportDepth = -1);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#ace4b175a19c5a5b9f5cadb8b6c7c59e3">NvBlastExtAuthoringReleaseAuthoringResultCollision</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a222cfae693431f826d20471e4f6848e1">NvBlastExtAuthoringReleaseAuthoringResult</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>* ar);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#af7f3ac8b4a132b584eff789062a59dfd">NvBlastExtAuthoringUpdateGraphicsMesh</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a>&amp; fTool, <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_authoring_8h.html#a27195d91a3840bc8507e1b4cf53dcbd8">NvBlastExtAuthoringBuildCollisionMeshes</a>(<a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a>&amp; ares,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a>&amp; collisionBuilder,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">Nv::Blast::ConvexDecompositionParams</a>&amp; collisionParam,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; uint32_t chunksToProcessCount, uint32_t* chunksToProcess);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#ad8620704c7b10e310df502a8c8998a17">NvBlastExtAuthoringCreateMeshCleaner</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_authoring_8h.html#ad0dfcb6b6b06fd0560aa55e4dcddfeb9">NvBlastExtAuthoringFindAssetConnectingBonds</a>(</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>** components, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* scales, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>* rotations, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* translations,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> uint32_t** convexHullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>*** chunkHulls, uint32_t componentCount,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="struct_nv_blast_ext_asset_utils_bond_desc.html">NvBlastExtAssetUtilsBondDesc</a>*&amp; newBondDescs, <span class="keywordtype">float</span> maxSeparation = 0.0f);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">Nv::Blast::PatternGenerator</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a3b4d480947621359034465558d9c5a30">NvBlastExtAuthoringCreatePatternGenerator</a>();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#aaca9a59cb41be7dd861dc96cb18e21d6">NvBlastExtAuthoringCreateGridAccelerator</a>(uint32_t resolution, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">Nv::Blast::GridWalker</a>* <a class="code" href="_nv_blast_ext_authoring_8h.html#a94df8330156975a933639cfaf2774a72">NvBlastExtAuthoringCreateGridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Nv::Blast::Grid</a>* parent);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORING_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_8h_html_a3b4d480947621359034465558d9c5a30"><div class="ttname"><a href="_nv_blast_ext_authoring_8h.html#a3b4d480947621359034465558d9c5a30">NvBlastExtAuthoringCreatePatternGenerator</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::PatternGenerator * NvBlastExtAuthoringCreatePatternGenerator()</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_8h_html_a32494843df016048528ed3e616caa1d1"><div class="ttname"><a href="_nv_blast_ext_authoring_8h.html#a32494843df016048528ed3e616caa1d1">NvBlastExtAuthoringCreateFractureTool</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::FractureTool * NvBlastExtAuthoringCreateFractureTool()</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_8h_html_a163b66fbf427950ae760cada3d61598e"><div class="ttname"><a href="_nv_blast_ext_authoring_8h.html#a163b66fbf427950ae760cada3d61598e">NvBlastExtAuthoringProcessFracture</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::AuthoringResult * NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool &amp;fTool, Nv::Blast::BlastBondGenerator &amp;bondGenerator, Nv::Blast::ConvexMeshBuilder &amp;collisionBuilder, const Nv::Blast::ConvexDecompositionParams &amp;collisionParam, int32_t defaultSupportDepth=-1)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html
index 0f4d4f5..42ef030 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_accelerator_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_accelerator_8h
<div class="title">NvBlastExtAuthoringAccelerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_accelerator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html"> 47</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a"> 81</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a">~SpatialAccelerator</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html"> 88</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a>(int32_t count);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1"> 100</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; int32_t m_count;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; int32_t m_current;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html"> 106</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c"> 108</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2"> 109</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2">index</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a"> 110</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a">SegmentToIndex</a>(<span class="keywordtype">float</span> c, uint32_t i, <span class="keywordtype">bool</span> end) : coord(c), index(i), end(end) {};</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (coord &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (coord &gt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> end &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html"> 124</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html#abfe8ed7f9ebbf369432b57eb7d3409c9"> 129</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>(int32_t resolution);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> setMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; int32_t m_r3;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; int32_t m_mappedFacetCount;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_spos;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_deltas;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; };</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid_walker.html"> 143</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a> <span class="comment">// Iterator to traverse the grid</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* grd);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) <span class="keyword">override</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* m_grid;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; int32_t m_pointCmdDir;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html"> 167</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* in);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500"> 178</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> For fast point test.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_xSegm;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_ySegm;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_zSegm;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;uint32_t&gt; m_indices;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;uint32_t&gt; m_foundx;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;uint32_t&gt; m_foundy;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint32_t m_iterId;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t m_current;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint32_t m_facetCount;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_minimal;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_maximal;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_rescale;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html"> 210</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t resolution);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p) <span class="keyword">override</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3"> 223</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> buildAccelStructure(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* edges, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* fc, int32_t facetCount);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a> m_bounds;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::vector&lt;NvcBounds3&gt; m_cells;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; };</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;} <span class="comment">// namsepace Nv</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_sweeping_accelerator_html_a10d706850f97144678975742b586b500"><div class="ttname"><a href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">Nv::Blast::SweepingAccelerator::setPointCmpDirection</a></div><div class="ttdeci">virtual void setPointCmpDirection(int32_t dir) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:178</div></div>
+<a href="_nv_blast_ext_authoring_accelerator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html"> 47</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a"> 81</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a499c8dc6cb684d8830662451f2f1dd5a">~SpatialAccelerator</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html"> 88</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html">DummyAccelerator</a>(int32_t count);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1"> 100</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_dummy_accelerator.html#a50b1fd58ed24a0f70cf4b6dfeefcaca1">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; int32_t m_count;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; int32_t m_current;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html"> 106</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c"> 108</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2"> 109</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a541cf82975e53fedb2dfe4bb5fa968f2">index</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a"> 110</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#ae648b740f1f16d190960cdd65613631a">SegmentToIndex</a>(<span class="keywordtype">float</span> c, uint32_t i, <span class="keywordtype">bool</span> end) : coord(c), index(i), end(end) {};</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a821a2da25c99a19c575c177a0d072438">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html">SegmentToIndex</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (coord &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (coord &gt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a5e224ca8a22c2e8f71dfc999beef7f1c">coord</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> end &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_segment_to_index.html#a0571e651471fa2a0251049c7eadde59a">end</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html"> 124</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid.html#abfe8ed7f9ebbf369432b57eb7d3409c9"> 129</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>(int32_t resolution);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> setMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* m);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; int32_t m_r3;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; int32_t m_mappedFacetCount;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_spos;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_deltas;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; };</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_grid_walker.html"> 143</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a> <span class="comment">// Iterator to traverse the grid</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid_walker.html">GridWalker</a>(<a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* grd);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a99d3cf42fe6c71caa4c827d94ca3fd4d">setPointCmpDirection</a>(int32_t dir) <span class="keyword">override</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_grid.html">Grid</a>* m_grid;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; int32_t m_pointCmdDir;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html"> 167</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html">SweepingAccelerator</a>(<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* in);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point) <span class="keyword">override</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500"> 178</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> For fast point test.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_xSegm;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_ySegm;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt; m_zSegm;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;uint32_t&gt; m_indices;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;uint32_t&gt; m_foundx;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;uint32_t&gt; m_foundy;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint32_t m_iterId;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t m_current;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; uint32_t m_facetCount;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_minimal;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_maximal;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> m_rescale;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html"> 210</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t resolution);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">BBoxBasedAccelerator</a>();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a691d335077de5aabf9d01817c5266bd8">getNextFacet</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* ed, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>&amp; fc) <span class="keyword">override</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds) <span class="keyword">override</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html#a3b2d7511d86e393aa09335123bd52afe">setState</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p) <span class="keyword">override</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3"> 223</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html#ae843779ca0d8635836fbbc9a2060dfa3">setPointCmpDirection</a>(int32_t dir)<span class="keyword"> override </span>{};</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> buildAccelStructure(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* pos, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* edges, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* fc, int32_t facetCount);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; int32_t m_resolution;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a> m_bounds;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; std::vector&lt; std::vector&lt;int32_t&gt; &gt; m_spatialMap;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::vector&lt;NvcBounds3&gt; m_cells;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Iterator data</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; std::vector&lt;uint32_t&gt; m_alreadyGotFlag;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint32_t m_alreadyGotValue;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; std::vector&lt;int32_t&gt; m_cellList;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int32_t m_gotCells;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; int32_t m_iteratorCell;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; int32_t m_iteratorFacet;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; };</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;} <span class="comment">// namsepace Nv</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGACCELERATOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_sweeping_accelerator_html_a10d706850f97144678975742b586b500"><div class="ttname"><a href="class_nv_1_1_blast_1_1_sweeping_accelerator.html#a10d706850f97144678975742b586b500">Nv::Blast::SweepingAccelerator::setPointCmpDirection</a></div><div class="ttdeci">virtual void setPointCmpDirection(int32_t dir) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:178</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_b_box_based_accelerator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_b_box_based_accelerator.html">Nv::Blast::BBoxBasedAccelerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:210</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_spatial_accelerator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_spatial_accelerator.html">Nv::Blast::SpatialAccelerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:47</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html
index b147319..6dd06a0 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_bond_generator
<div class="title">NvBlastExtAuthoringBondGenerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_bond_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>FractureTool;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TriangleProcessor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">struct </span>PlaneChunkIndexer;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> { <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745">EXACT</a>, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67af8d9fd52be0dd6e99bde1fffd8975258">AVERAGE</a> };</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418"> 57</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de">bondMode</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html">PlaneChunkIndexer</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f"> 64</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f">chunkId</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6"> 65</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6">trId</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c"> 66</a></span>&#160; <a class="code" href="struct_nvc_plane.html">NvcPlane</a> <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">plane</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f"> 77</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f">~BlastBondGenerator</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> int32_t buildDescFromInternalFracture(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>* tool, <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>*&amp; resultChunkDescriptors) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshACount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshA, uint32_t meshBCount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshB, </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t overlapsCount, <span class="keyword">const</span> uint32_t* overlapsA, <span class="keyword">const</span> uint32_t* overlapsB, </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> cfg) = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* convexHullOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>) = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_plane_chunk_indexer_html_ad7fc6cfbd651eef3d621e14df664fc4c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">Nv::Blast::PlaneChunkIndexer::plane</a></div><div class="ttdeci">NvcPlane plane</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:66</div></div>
+<a href="_nv_blast_ext_authoring_bond_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>FractureTool;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TriangleProcessor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">struct </span>PlaneChunkIndexer;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> { <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67a494d2f564cd543f0cc61762451a6c745">EXACT</a>, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67af8d9fd52be0dd6e99bde1fffd8975258">AVERAGE</a> };</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418"> 57</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">BondGenMode</a> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a592968d7782ca9c3b9652268afac78de">bondMode</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html">PlaneChunkIndexer</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f"> 64</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f">chunkId</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6"> 65</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6">trId</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c"> 66</a></span>&#160; <a class="code" href="struct_nvc_plane.html">NvcPlane</a> <a class="code" href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">plane</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f"> 77</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html#a922132c5bfe713b12cf061147106e00f">~BlastBondGenerator</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> int32_t buildDescFromInternalFracture(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>* tool, <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>*&amp; resultChunkDescriptors) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshACount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshA, uint32_t meshBCount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshB, </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> int32_t createBondBetweenMeshes(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t overlapsCount, <span class="keyword">const</span> uint32_t* overlapsA, <span class="keyword">const</span> uint32_t* overlapsB, </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> cfg) = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> int32_t bondsFromPrefractured(uint32_t meshCount, <span class="keyword">const</span> uint32_t* convexHullOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html#aeda86ef2c94ee551fbbfa123564e3418">maxSeparation</a>) = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAUTHORINGBONDGENERATOR_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_plane_chunk_indexer_html_ad7fc6cfbd651eef3d621e14df664fc4c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c">Nv::Blast::PlaneChunkIndexer::plane</a></div><div class="ttdeci">NvcPlane plane</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:66</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_plane_chunk_indexer_html_a80203dd762ab3448bf15ebb38035b0c6"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6">Nv::Blast::PlaneChunkIndexer::trId</a></div><div class="ttdeci">int32_t trId</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:65</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_bond_generation_config_html_a039dca7ff2ee57fcf96ce5aad570cf67"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_bond_generation_config.html#a039dca7ff2ee57fcf96ce5aad570cf67">Nv::Blast::BondGenerationConfig::BondGenMode</a></div><div class="ttdeci">BondGenMode</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBondGenerator.h:56</div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h_source.html
index a298a44..d8d6850 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_bond_generator
<div class="title">NvBlastExtAuthoringBondGeneratorImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_bond_generator_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_bond_generator_8h.html">NvBlastExtAuthoringBondGenerator.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html">BlastBondGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a2a98b914a7559d4e07ea9d324cdbf1a3"> 52</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a2a98b914a7559d4e07ea9d324cdbf1a3">BlastBondGeneratorImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a>* builder) </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; : mConvexMeshBuilder(builder) {};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#ac0deb96a81bd1db34ad1ef2f8623d64e">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a288e9d9a7c1bcb10e15f6f3ec90ef53a">buildDescFromInternalFracture</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>* tool, <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>*&amp; resultChunkDescriptors) <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a0d06aa62402161f1197fe1dad4801cb1">createBondBetweenMeshes</a>(uint32_t meshACount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshA, uint32_t meshBCount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshB,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) <span class="keyword">override</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a0d06aa62402161f1197fe1dad4801cb1">createBondBetweenMeshes</a>(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint32_t overlapsCount, <span class="keyword">const</span> uint32_t* overlapsA, <span class="keyword">const</span> uint32_t* overlapsB,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> cfg) <span class="keyword">override</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a97fd9b746597ec923e2376387188a06e">bondsFromPrefractured</a>(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a97fd9b746597ec923e2376387188a06e">bondsFromPrefractured</a>(uint32_t meshCount, <span class="keyword">const</span> uint32_t* convexHullOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <span class="keywordtype">float</span> maxSeparation) <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">float</span> processWithMidplanes(<a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html">TriangleProcessor</a>* trProcessor, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* mA, uint32_t mavc, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* mB, uint32_t mbvc, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull1, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull2,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull1p, <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull2p,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; physx::PxVec3&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, physx::PxVec3&amp; centroid, <span class="keywordtype">float</span> maxRelSeparation);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; int32_t createFullBondListAveraged( uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* supportFlags, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf, std::set&lt;std::pair&lt;uint32_t, uint32_t&gt; &gt;* pairNotToTest = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; int32_t createFullBondListExact( uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* supportFlags, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; int32_t createFullBondListExactInternal(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::vector&lt;PlaneChunkIndexer&gt;&amp; planeTriangleMapping , <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; int32_t createBondForcedInternal( <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull0, <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull1,<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; cHull0, </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <span class="keywordtype">float</span> overlapping);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">void</span> buildGeometryCache(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> resetGeometryCache();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a>* mConvexMeshBuilder;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; std::vector&lt;std::vector&lt;Triangle&gt; &gt; mGeometryCache;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; std::vector&lt;PlaneChunkIndexer&gt; mPlaneCache;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::vector&lt;CollisionHull*&gt; mCHullCache;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; std::vector&lt;std::vector&lt;physx::PxVec3&gt; &gt; mHullsPointsCache;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::vector&lt;physx::PxBounds3 &gt; mBoundsCache;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
+<a href="_nv_blast_ext_authoring_bond_generator_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_bond_generator_8h.html">NvBlastExtAuthoringBondGenerator.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html">BlastBondGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator.html">BlastBondGenerator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a2a98b914a7559d4e07ea9d324cdbf1a3"> 52</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a2a98b914a7559d4e07ea9d324cdbf1a3">BlastBondGeneratorImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a>* builder) </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; : mConvexMeshBuilder(builder) {};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#ac0deb96a81bd1db34ad1ef2f8623d64e">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a288e9d9a7c1bcb10e15f6f3ec90ef53a">buildDescFromInternalFracture</a>(<a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a>* tool, <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>*&amp; resultChunkDescriptors) <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a0d06aa62402161f1197fe1dad4801cb1">createBondBetweenMeshes</a>(uint32_t meshACount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshA, uint32_t meshBCount, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* meshB,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) <span class="keyword">override</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a0d06aa62402161f1197fe1dad4801cb1">createBondBetweenMeshes</a>(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint32_t overlapsCount, <span class="keyword">const</span> uint32_t* overlapsA, <span class="keyword">const</span> uint32_t* overlapsB,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBond, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> cfg) <span class="keyword">override</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a97fd9b746597ec923e2376387188a06e">bondsFromPrefractured</a>(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> int32_t <a class="code" href="class_nv_1_1_blast_1_1_blast_bond_generator_impl.html#a97fd9b746597ec923e2376387188a06e">bondsFromPrefractured</a>(uint32_t meshCount, <span class="keyword">const</span> uint32_t* convexHullOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* chunkIsSupport, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <span class="keywordtype">float</span> maxSeparation) <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">float</span> processWithMidplanes(<a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html">TriangleProcessor</a>* trProcessor, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* mA, uint32_t mavc, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* mB, uint32_t mbvc, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull1, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull2,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull1p, <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull2p,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; physx::PxVec3&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, physx::PxVec3&amp; centroid, <span class="keywordtype">float</span> maxRelSeparation);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; int32_t createFullBondListAveraged( uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** chunkHulls,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* supportFlags, <span class="keyword">const</span> uint32_t* meshGroups, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf, std::set&lt;std::pair&lt;uint32_t, uint32_t&gt; &gt;* pairNotToTest = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; int32_t createFullBondListExact( uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span>* supportFlags, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs, <a class="code" href="struct_nv_1_1_blast_1_1_bond_generation_config.html">BondGenerationConfig</a> conf);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; int32_t createFullBondListExactInternal(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::vector&lt;PlaneChunkIndexer&gt;&amp; planeTriangleMapping , <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>*&amp; resultBondDescs);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; int32_t createBondForcedInternal( <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull0, <span class="keyword">const</span> std::vector&lt;physx::PxVec3&gt;&amp; hull1,<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; cHull0, </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; resultBond, <span class="keywordtype">float</span> overlapping);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">void</span> buildGeometryCache(uint32_t meshCount, <span class="keyword">const</span> uint32_t* geometryOffset, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* geometry);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> resetGeometryCache();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a>* mConvexMeshBuilder;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; std::vector&lt;std::vector&lt;Triangle&gt; &gt; mGeometryCache;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; std::vector&lt;PlaneChunkIndexer&gt; mPlaneCache;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::vector&lt;CollisionHull*&gt; mCHullCache;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; std::vector&lt;std::vector&lt;physx::PxVec3&gt; &gt; mHullsPointsCache;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::vector&lt;physx::PxBounds3 &gt; mBoundsCache;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a1c8d1bbcf531b04e6ff52f5357987794"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">Nv::Blast::VecMath::normal</a></div><div class="ttdeci">NV_INLINE float normal(const float a[3], float r[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:93</div></div>
<div class="ttc" id="struct_nv_blast_bond_desc_html"><div class="ttname"><a href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:322</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html
index 0b48ae9..84062c8 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_boolean_tool_8
<div class="title">NvBlastExtAuthoringBooleanTool.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_boolean_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBOOLEANTOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBOOLEANTOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html">NvBlastExtAuthoringInternalCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_conf.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a42353b04c231113808fa2e78268dc50c"> 50</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a13f44fd320cd2f9ed61c0209fb1d2e2d">ca</a>, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a34718570798b8e1247f1a894e2c94ab6">cb</a>, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a42353b04c231113808fa2e78268dc50c">ci</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(int32_t a, int32_t b, int32_t c) : ca(a), cb(b), ci(c)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html"> 57</a></span>&#160;<span class="keyword">namespace </span>BooleanConfigurations</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#a737fc24c4425afc869a4862832e8e753"> 62</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> <a class="code" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#a737fc24c4425afc869a4862832e8e753">BOOLEAN_INTERSECION</a>()</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(0, 0, 1);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#af60303b702a6320c067215303e1f7d4d"> 70</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> <a class="code" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#af60303b702a6320c067215303e1f7d4d">BOOLEAN_UNION</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(1, 1, -1);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#aa31fac69fc5177160cc4ae79b18c44a2"> 77</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> <a class="code" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#aa31fac69fc5177160cc4ae79b18c44a2">BOOLEAN_DIFFERENCE</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(1, 0, -1);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html"> 86</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html">EdgeFacetIntersectionData</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a24e67b25ba307858ba36417c1a72e7a4"> 88</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a24e67b25ba307858ba36417c1a72e7a4">edId</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a9eaeac91e248bdd89a96303cdbed5640"> 89</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a9eaeac91e248bdd89a96303cdbed5640">intersectionType</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a20375aa2d317ee4763d32ecc039e0814"> 90</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a> <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a20375aa2d317ee4763d32ecc039e0814">intersectionPoint</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a04fd7acaf35a7f4647e12810efd2fc78"> 91</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a04fd7acaf35a7f4647e12810efd2fc78">EdgeFacetIntersectionData</a>(int32_t edId, int32_t intersType, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; inters) : edId(edId), intersectionType(intersType), intersectionPoint(inters)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; { }</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a6dd22cefbaad1235b8835c9ac2a56676"> 93</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a6dd22cefbaad1235b8835c9ac2a56676">EdgeFacetIntersectionData</a>(int32_t edId) : edId(edId)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; { }</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a57d90423caa66df1a63436aa7405f046"> 95</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a57d90423caa66df1a63436aa7405f046">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html">EdgeFacetIntersectionData</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> edId &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a24e67b25ba307858ba36417c1a72e7a4">edId</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_boolean_evaluator.html"> 108</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> performBoolean(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelA, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> performBoolean(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> performFastCutting(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelA, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">void</span> performFastCutting(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; int32_t isPointContainedInMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; int32_t isPointContainedInMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccel, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createNewMesh();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> reset();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">void</span> buildFaceFaceIntersections(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> buildFastFaceFaceIntersection(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> collectRetainedPartsFromA(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> collectRetainedPartsFromB(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; int32_t addIfNotExist(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; p);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">void</span> addEdgeIfValid(<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; ed);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; int32_t vertexMeshStatus03(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t vertexMeshStatus30(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMeshA;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMeshB;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAcceleratorA;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAcceleratorB;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; std::vector&lt;EdgeWithParent&gt; mEdgeAggregate;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::vector&lt;Vertex&gt; mVerticesAggregate;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::vector&lt;std::vector&lt;EdgeFacetIntersectionData&gt; &gt; mEdgeFacetIntersectionData12;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; std::vector&lt;std::vector&lt;EdgeFacetIntersectionData&gt; &gt; mEdgeFacetIntersectionData21;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;};</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGBOOLEANTOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_edge_facet_intersection_data_html_a20375aa2d317ee4763d32ecc039e0814"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a20375aa2d317ee4763d32ecc039e0814">Nv::Blast::EdgeFacetIntersectionData::intersectionPoint</a></div><div class="ttdeci">Vertex intersectionPoint</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBooleanTool.h:90</div></div>
+<a href="_nv_blast_ext_authoring_boolean_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGBOOLEANTOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGBOOLEANTOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html">NvBlastExtAuthoringInternalCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_conf.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a42353b04c231113808fa2e78268dc50c"> 50</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a13f44fd320cd2f9ed61c0209fb1d2e2d">ca</a>, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a34718570798b8e1247f1a894e2c94ab6">cb</a>, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a42353b04c231113808fa2e78268dc50c">ci</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(int32_t a, int32_t b, int32_t c) : ca(a), cb(b), ci(c)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html"> 57</a></span>&#160;<span class="keyword">namespace </span>BooleanConfigurations</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#a737fc24c4425afc869a4862832e8e753"> 62</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> <a class="code" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#a737fc24c4425afc869a4862832e8e753">BOOLEAN_INTERSECION</a>()</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(0, 0, 1);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#af60303b702a6320c067215303e1f7d4d"> 70</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> <a class="code" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#af60303b702a6320c067215303e1f7d4d">BOOLEAN_UNION</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(1, 1, -1);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#aa31fac69fc5177160cc4ae79b18c44a2"> 77</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> <a class="code" href="namespace_nv_1_1_blast_1_1_boolean_configurations.html#aa31fac69fc5177160cc4ae79b18c44a2">BOOLEAN_DIFFERENCE</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html#a48d2d83b59c82a9507f050286d023c25">BooleanConf</a>(1, 0, -1);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html"> 86</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html">EdgeFacetIntersectionData</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a24e67b25ba307858ba36417c1a72e7a4"> 88</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a24e67b25ba307858ba36417c1a72e7a4">edId</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a9eaeac91e248bdd89a96303cdbed5640"> 89</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a9eaeac91e248bdd89a96303cdbed5640">intersectionType</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a20375aa2d317ee4763d32ecc039e0814"> 90</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a> <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a20375aa2d317ee4763d32ecc039e0814">intersectionPoint</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a04fd7acaf35a7f4647e12810efd2fc78"> 91</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a04fd7acaf35a7f4647e12810efd2fc78">EdgeFacetIntersectionData</a>(int32_t edId, int32_t intersType, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; inters) : edId(edId), intersectionType(intersType), intersectionPoint(inters)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; { }</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a6dd22cefbaad1235b8835c9ac2a56676"> 93</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a6dd22cefbaad1235b8835c9ac2a56676">EdgeFacetIntersectionData</a>(int32_t edId) : edId(edId)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; { }</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a57d90423caa66df1a63436aa7405f046"> 95</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a57d90423caa66df1a63436aa7405f046">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html">EdgeFacetIntersectionData</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> edId &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a24e67b25ba307858ba36417c1a72e7a4">edId</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_boolean_evaluator.html"> 108</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> performBoolean(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelA, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> performBoolean(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> performFastCutting(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelA, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccelB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">void</span> performFastCutting(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB, <a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; int32_t isPointContainedInMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; int32_t isPointContainedInMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* spAccel, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createNewMesh();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> reset();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">void</span> buildFaceFaceIntersections(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> buildFastFaceFaceIntersection(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> collectRetainedPartsFromA(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> collectRetainedPartsFromB(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_conf.html">BooleanConf</a> mode);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; int32_t addIfNotExist(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; p);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">void</span> addEdgeIfValid(<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; ed);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; int32_t vertexMeshStatus03(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t vertexMeshStatus30(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMeshA;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMeshB;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAcceleratorA;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAcceleratorB;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; std::vector&lt;EdgeWithParent&gt; mEdgeAggregate;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::vector&lt;Vertex&gt; mVerticesAggregate;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::vector&lt;std::vector&lt;EdgeFacetIntersectionData&gt; &gt; mEdgeFacetIntersectionData12;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; std::vector&lt;std::vector&lt;EdgeFacetIntersectionData&gt; &gt; mEdgeFacetIntersectionData21;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;};</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGBOOLEANTOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_edge_facet_intersection_data_html_a20375aa2d317ee4763d32ecc039e0814"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a20375aa2d317ee4763d32ecc039e0814">Nv::Blast::EdgeFacetIntersectionData::intersectionPoint</a></div><div class="ttdeci">Vertex intersectionPoint</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBooleanTool.h:90</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_boolean_evaluator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_boolean_evaluator.html">Nv::Blast::BooleanEvaluator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBooleanTool.h:108</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_with_parent_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_with_parent.html">Nv::Blast::EdgeWithParent</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:48</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_collision_builder_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_collision_builder_impl_8h_source.html
index 8b9c87e..f3eab2c 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_collision_builder_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_collision_builder_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_collision_buil
<div class="title">NvBlastExtAuthoringCollisionBuilderImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_collision_builder_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a36da4b89aa7e5aa006b2d8e647aa3f05">trimCollisionGeometry</a>(ConvexMeshBuilder&amp; cmb, uint32_t chunksCount, CollisionHull** in, <span class="keyword">const</span> uint32_t* chunkDepth);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;int32_t <a class="code" href="namespace_nv_1_1_blast.html#a8ebc2507c0fdfa452f1000b86b590af5">buildMeshConvexDecomposition</a>(ConvexMeshBuilder&amp; cmb, <span class="keyword">const</span> Triangle* mesh, uint32_t triangleCount,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">const</span> ConvexDecompositionParams&amp; params, CollisionHull**&amp; convexes);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
+<a href="_nv_blast_ext_authoring_collision_builder_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a36da4b89aa7e5aa006b2d8e647aa3f05">trimCollisionGeometry</a>(ConvexMeshBuilder&amp; cmb, uint32_t chunksCount, CollisionHull** in, <span class="keyword">const</span> uint32_t* chunkDepth);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;int32_t <a class="code" href="namespace_nv_1_1_blast.html#a8ebc2507c0fdfa452f1000b86b590af5">buildMeshConvexDecomposition</a>(ConvexMeshBuilder&amp; cmb, <span class="keyword">const</span> Triangle* mesh, uint32_t triangleCount,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">const</span> ConvexDecompositionParams&amp; params, CollisionHull**&amp; convexes);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_authoring_convex_mesh_builder_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a></div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a36da4b89aa7e5aa006b2d8e647aa3f05"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a36da4b89aa7e5aa006b2d8e647aa3f05">Nv::Blast::trimCollisionGeometry</a></div><div class="ttdeci">void trimCollisionGeometry(ConvexMeshBuilder &amp;cmb, uint32_t chunksCount, CollisionHull **in, const uint32_t *chunkDepth)</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a8ebc2507c0fdfa452f1000b86b590af5"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a8ebc2507c0fdfa452f1000b86b590af5">Nv::Blast::buildMeshConvexDecomposition</a></div><div class="ttdeci">int32_t buildMeshConvexDecomposition(ConvexMeshBuilder &amp;cmb, const Triangle *mesh, uint32_t triangleCount, const ConvexDecompositionParams &amp;params, CollisionHull **&amp;convexes)</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html
index 5a9fed0..79bbd98 100644
--- a/docs/source_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_convex_mesh_builder_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_convex_mesh_bu
<div class="title">NvBlastExtAuthoringConvexMeshBuilder.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a67c62d633c355aeac7869b2c77b8737b">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#ae9a13bf25c13b682eeb9d1865898706f">buildCollisionGeometry</a>(uint32_t verticesCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* vertexData) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a8fad8e2677dc9e46052e542e9232c3f4">releaseCollisionHull</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
+<a href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a67c62d633c355aeac7869b2c77b8737b">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#ae9a13bf25c13b682eeb9d1865898706f">buildCollisionGeometry</a>(uint32_t verticesCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* vertexData) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a8fad8e2677dc9e46052e542e9232c3f4">releaseCollisionHull</a>(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGCONVEXMESHBUILDER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html_ae9a13bf25c13b682eeb9d1865898706f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#ae9a13bf25c13b682eeb9d1865898706f">Nv::Blast::ConvexMeshBuilder::buildCollisionGeometry</a></div><div class="ttdeci">virtual CollisionHull * buildCollisionGeometry(uint32_t verticesCount, const NvcVec3 *vertexData)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html_a67c62d633c355aeac7869b2c77b8737b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html#a67c62d633c355aeac7869b2c77b8737b">Nv::Blast::ConvexMeshBuilder::release</a></div><div class="ttdeci">virtual void release()=0</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:133</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html
index 365a85a..a277f69 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_cutout_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_cutout_8h_sour
<div class="title">NvBlastExtAuthoringCutout.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_cutout_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html"> 36</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#abada00015d8e7fab698ab65979ff1429">getCutoutCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a409a1bb7a56c5224ddc469d555041e16">getCutoutVertexCount</a>(uint32_t cutoutIndex, uint32_t loopIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a8348b26fd9eda511ccb71b1e201d099b">getCutoutLoopCount</a>(uint32_t cutoutIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">getCutoutVertex</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a45d0b1d3f50647cd3b5517b70485f338">isCutoutVertexToggleSmoothingGroup</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6d3a1b817c323ca2385d1cacf52c98ce">isPeriodic</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a7f13e3c6104d0b306d373024b8f4ffc9">getDimensions</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a98936273f2f572f73933a62eded49e6c">release</a>() = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93"> 80</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93">~CutoutSet</a>() {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // idndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html_a6f6877d1b4eacf09ceb2233a79b607e2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">Nv::Blast::CutoutSet::getCutoutVertex</a></div><div class="ttdeci">virtual const NvcVec3 &amp; getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) const =0</div></div>
+<a href="_nv_blast_ext_authoring_cutout_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGCUTOUT_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html"> 36</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#abada00015d8e7fab698ab65979ff1429">getCutoutCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a409a1bb7a56c5224ddc469d555041e16">getCutoutVertexCount</a>(uint32_t cutoutIndex, uint32_t loopIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a8348b26fd9eda511ccb71b1e201d099b">getCutoutLoopCount</a>(uint32_t cutoutIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">getCutoutVertex</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a45d0b1d3f50647cd3b5517b70485f338">isCutoutVertexToggleSmoothingGroup</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6d3a1b817c323ca2385d1cacf52c98ce">isPeriodic</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a7f13e3c6104d0b306d373024b8f4ffc9">getDimensions</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a98936273f2f572f73933a62eded49e6c">release</a>() = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93"> 80</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93">~CutoutSet</a>() {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // idndef NVBLASTAUTHORINGCUTOUT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html_a6f6877d1b4eacf09ceb2233a79b607e2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html#a6f6877d1b4eacf09ceb2233a79b607e2">Nv::Blast::CutoutSet::getCutoutVertex</a></div><div class="ttdeci">virtual const NvcVec3 &amp; getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html_a6122cea44eca2907f01ec61f1d963e93"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html#a6122cea44eca2907f01ec61f1d963e93">Nv::Blast::CutoutSet::~CutoutSet</a></div><div class="ttdeci">virtual ~CutoutSet()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutout.h:80</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutout.h:36</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_cutout_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_cutout_impl_8h_source.html
index 2857547..695b594 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_cutout_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_cutout_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_cutout_impl_8h
<div class="title">NvBlastExtAuthoringCutoutImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_cutout_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFCUTOUTIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFCUTOUTIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_cutout_8h.html">NvBlastExtAuthoringCutout.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxMat44.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_poly_vert.html"> 43</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_poly_vert.html">PolyVert</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_poly_vert.html#a8ea78901480aee9ff5b42cbfa4f53efa"> 45</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_poly_vert.html#a8ea78901480aee9ff5b42cbfa4f53efa">index</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_poly_vert.html#aeedaedbf387cbd04889f4dd54152e252"> 46</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_poly_vert.html#aeedaedbf387cbd04889f4dd54152e252">flags</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_loop.html"> 49</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_convex_loop.html">ConvexLoop</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_loop.html#a60048ae3684e9b06498f7b1268b5cf65"> 51</a></span>&#160; std::vector&lt;PolyVert&gt; <a class="code" href="struct_nv_1_1_blast_1_1_convex_loop.html#a60048ae3684e9b06498f7b1268b5cf65">polyVerts</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout.html">Cutout</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout.html#ac29380ef69c677be86745a7ff8b2805d"> 56</a></span>&#160; std::vector&lt;physx::PxVec3&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout.html#ac29380ef69c677be86745a7ff8b2805d">vertices</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">//std::vector&lt;ConvexLoop&gt; convexLoops;</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout.html#aa6f468c14b3ddd7d1cfefab166e88e21"> 58</a></span>&#160; std::vector&lt;physx::PxVec3&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout.html#aa6f468c14b3ddd7d1cfefab166e88e21">smoothingGroups</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html"> 61</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">POINT2D</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a004cc3d32633bf671fa7fc09e7445d01"> 63</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a004cc3d32633bf671fa7fc09e7445d01">POINT2D</a>() {}</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a08ceb7892b3841490c2356b9c6aa8594"> 64</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a08ceb7892b3841490c2356b9c6aa8594">POINT2D</a>(int32_t _x, int32_t _y) : <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>(_x), <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>(_y) {}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf"> 66</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1"> 67</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1">y</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a591c976645a1d0bc4b527cce2803af18"> 69</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a591c976645a1d0bc4b527cce2803af18">operator==</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">POINT2D</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> x == other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a> &amp;&amp; y == other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1">y</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a34222e94952a557f7b114a009d8ffd69"> 73</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a34222e94952a557f7b114a009d8ffd69">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">POINT2D</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (x == other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a>) <span class="keywordflow">return</span> y &lt; other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1">y</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> x &lt; other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html"> 80</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html">CutoutSetImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a77388b87dcf872052a907c193c0a8a64"> 82</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a77388b87dcf872052a907c193c0a8a64">CutoutSetImpl</a>() : periodic(false), dimensions(0.0f)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a3cdeb8af2b74582d4bf11622fae26597"> 86</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a3cdeb8af2b74582d4bf11622fae26597">getCutoutCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> (uint32_t)cutouts.size() - 1;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a724f76d7a47b225d1a2d9ea14d7a3131"> 91</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a724f76d7a47b225d1a2d9ea14d7a3131">getCutoutVertexCount</a>(uint32_t cutoutIndex, uint32_t loopIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> (uint32_t)cutoutLoops[cutouts[cutoutIndex] + loopIndex].vertices.size();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a47895202188175f029b780d388761f20"> 95</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a47895202188175f029b780d388761f20">getCutoutLoopCount</a>(uint32_t cutoutIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> (uint32_t)cutouts[cutoutIndex + 1] - cutouts[cutoutIndex];</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a6df20dfee5099bad5074892775e13af9"> 102</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a6df20dfee5099bad5074892775e13af9">isCutoutVertexToggleSmoothingGroup</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">auto</span>&amp; vRef = cutoutLoops[cutouts[cutoutIndex] + loopIndex].vertices[vertexIndex];</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; v : cutoutLoops[cutouts[cutoutIndex] + loopIndex].smoothingGroups)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> ((vRef - v).magnitudeSquared() &lt; 1e-5)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a5cba5e161e2980a921310779e827627e"> 115</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a5cba5e161e2980a921310779e827627e">isPeriodic</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> periodic;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; getDimensions() <span class="keyword">const</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">//void serialize(physx::PxFileBuf&amp; stream) const;</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">//void deserialize(physx::PxFileBuf&amp; stream);</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#ac4b7d67ade7f30f5e6e218064ded083d"> 124</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#ac4b7d67ade7f30f5e6e218064ded083d">release</a>()</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">delete</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adfeea6d89a6e39188fc96eb8d6d202ea"> 129</a></span>&#160; std::vector&lt;Cutout&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adfeea6d89a6e39188fc96eb8d6d202ea">cutoutLoops</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a1699ed4e7e50096e42aa2da1d0c3a7f7"> 130</a></span>&#160; std::vector&lt;uint32_t&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a1699ed4e7e50096e42aa2da1d0c3a7f7">cutouts</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adccc4de2f5719c5a6b2b2cd0af5646cb"> 131</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adccc4de2f5719c5a6b2b2cd0af5646cb">periodic</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a9d397b7f5b1244b5d89db398211a5580"> 132</a></span>&#160; physx::PxVec2 <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a9d397b7f5b1244b5d89db398211a5580">dimensions</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a3c3bd8c624a44bbffc27f6ab8e8f2012">createCutoutSet</a>(<a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html">Nv::Blast::CutoutSetImpl</a>&amp; cutoutSet, <span class="keyword">const</span> uint8_t* pixelBuffer, uint32_t bufferWidth, uint32_t bufferHeight,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">float</span> segmentationErrorThreshold, <span class="keywordtype">float</span> snapThreshold, <span class="keywordtype">bool</span> periodic, <span class="keywordtype">bool</span> expandGaps);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFCUTOUTIMPL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_cutout_html_ac29380ef69c677be86745a7ff8b2805d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_cutout.html#ac29380ef69c677be86745a7ff8b2805d">Nv::Blast::Cutout::vertices</a></div><div class="ttdeci">std::vector&lt; physx::PxVec3 &gt; vertices</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutoutImpl.h:56</div></div>
+<a href="_nv_blast_ext_authoring_cutout_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFCUTOUTIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFCUTOUTIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_cutout_8h.html">NvBlastExtAuthoringCutout.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxMat44.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_poly_vert.html"> 43</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_poly_vert.html">PolyVert</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_poly_vert.html#a8ea78901480aee9ff5b42cbfa4f53efa"> 45</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_poly_vert.html#a8ea78901480aee9ff5b42cbfa4f53efa">index</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_poly_vert.html#aeedaedbf387cbd04889f4dd54152e252"> 46</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_poly_vert.html#aeedaedbf387cbd04889f4dd54152e252">flags</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_loop.html"> 49</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_convex_loop.html">ConvexLoop</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_loop.html#a60048ae3684e9b06498f7b1268b5cf65"> 51</a></span>&#160; std::vector&lt;PolyVert&gt; <a class="code" href="struct_nv_1_1_blast_1_1_convex_loop.html#a60048ae3684e9b06498f7b1268b5cf65">polyVerts</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout.html">Cutout</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout.html#ac29380ef69c677be86745a7ff8b2805d"> 56</a></span>&#160; std::vector&lt;physx::PxVec3&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout.html#ac29380ef69c677be86745a7ff8b2805d">vertices</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">//std::vector&lt;ConvexLoop&gt; convexLoops;</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout.html#aa6f468c14b3ddd7d1cfefab166e88e21"> 58</a></span>&#160; std::vector&lt;physx::PxVec3&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout.html#aa6f468c14b3ddd7d1cfefab166e88e21">smoothingGroups</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html"> 61</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">POINT2D</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a004cc3d32633bf671fa7fc09e7445d01"> 63</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a004cc3d32633bf671fa7fc09e7445d01">POINT2D</a>() {}</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a08ceb7892b3841490c2356b9c6aa8594"> 64</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a08ceb7892b3841490c2356b9c6aa8594">POINT2D</a>(int32_t _x, int32_t _y) : <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>(_x), <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>(_y) {}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf"> 66</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1"> 67</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1">y</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a591c976645a1d0bc4b527cce2803af18"> 69</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a591c976645a1d0bc4b527cce2803af18">operator==</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">POINT2D</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> x == other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a> &amp;&amp; y == other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1">y</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a34222e94952a557f7b114a009d8ffd69"> 73</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a34222e94952a557f7b114a009d8ffd69">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">POINT2D</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (x == other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a>) <span class="keywordflow">return</span> y &lt; other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a2e1dfe475a2a14dea61686b82a168fd1">y</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> x &lt; other.<a class="code" href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html#a67cacfccae3f246e4d340046854e72bf">x</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html"> 80</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html">CutoutSetImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a77388b87dcf872052a907c193c0a8a64"> 82</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a77388b87dcf872052a907c193c0a8a64">CutoutSetImpl</a>() : periodic(false), dimensions(0.0f)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a3cdeb8af2b74582d4bf11622fae26597"> 86</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a3cdeb8af2b74582d4bf11622fae26597">getCutoutCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> (uint32_t)cutouts.size() - 1;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a724f76d7a47b225d1a2d9ea14d7a3131"> 91</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a724f76d7a47b225d1a2d9ea14d7a3131">getCutoutVertexCount</a>(uint32_t cutoutIndex, uint32_t loopIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> (uint32_t)cutoutLoops[cutouts[cutoutIndex] + loopIndex].vertices.size();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a47895202188175f029b780d388761f20"> 95</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a47895202188175f029b780d388761f20">getCutoutLoopCount</a>(uint32_t cutoutIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> (uint32_t)cutouts[cutoutIndex + 1] - cutouts[cutoutIndex];</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a6df20dfee5099bad5074892775e13af9"> 102</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a6df20dfee5099bad5074892775e13af9">isCutoutVertexToggleSmoothingGroup</a>(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">auto</span>&amp; vRef = cutoutLoops[cutouts[cutoutIndex] + loopIndex].vertices[vertexIndex];</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; v : cutoutLoops[cutouts[cutoutIndex] + loopIndex].smoothingGroups)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> ((vRef - v).magnitudeSquared() &lt; 1e-5)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a5cba5e161e2980a921310779e827627e"> 115</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a5cba5e161e2980a921310779e827627e">isPeriodic</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> periodic;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; getDimensions() <span class="keyword">const</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">//void serialize(physx::PxFileBuf&amp; stream) const;</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">//void deserialize(physx::PxFileBuf&amp; stream);</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#ac4b7d67ade7f30f5e6e218064ded083d"> 124</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#ac4b7d67ade7f30f5e6e218064ded083d">release</a>()</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">delete</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adfeea6d89a6e39188fc96eb8d6d202ea"> 129</a></span>&#160; std::vector&lt;Cutout&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adfeea6d89a6e39188fc96eb8d6d202ea">cutoutLoops</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a1699ed4e7e50096e42aa2da1d0c3a7f7"> 130</a></span>&#160; std::vector&lt;uint32_t&gt; <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a1699ed4e7e50096e42aa2da1d0c3a7f7">cutouts</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adccc4de2f5719c5a6b2b2cd0af5646cb"> 131</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#adccc4de2f5719c5a6b2b2cd0af5646cb">periodic</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a9d397b7f5b1244b5d89db398211a5580"> 132</a></span>&#160; physx::PxVec2 <a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html#a9d397b7f5b1244b5d89db398211a5580">dimensions</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a3c3bd8c624a44bbffc27f6ab8e8f2012">createCutoutSet</a>(<a class="code" href="struct_nv_1_1_blast_1_1_cutout_set_impl.html">Nv::Blast::CutoutSetImpl</a>&amp; cutoutSet, <span class="keyword">const</span> uint8_t* pixelBuffer, uint32_t bufferWidth, uint32_t bufferHeight,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">float</span> segmentationErrorThreshold, <span class="keywordtype">float</span> snapThreshold, <span class="keywordtype">bool</span> periodic, <span class="keywordtype">bool</span> expandGaps);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFCUTOUTIMPL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_cutout_html_ac29380ef69c677be86745a7ff8b2805d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_cutout.html#ac29380ef69c677be86745a7ff8b2805d">Nv::Blast::Cutout::vertices</a></div><div class="ttdeci">std::vector&lt; physx::PxVec3 &gt; vertices</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutoutImpl.h:56</div></div>
<div class="ttc" id="bt_vector3_8h_html_a9ac999fc46ed7720280dca03ad1e4e62"><div class="ttname"><a href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a></div><div class="ttdeci">SIMD_FORCE_INLINE const btScalar &amp; x() const</div><div class="ttdoc">Return the x value. </div><div class="ttdef"><b>Definition:</b> btVector3.h:275</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_cutout_set_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_cutout_set.html">Nv::Blast::CutoutSet</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutout.h:36</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_p_o_i_n_t2_d.html">Nv::Blast::POINT2D</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringCutoutImpl.h:61</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html
index dca90a8..7d4f34a 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_
<div class="title">NvBlastExtAuthoringFractureTool.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff"> 52</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff">APPROXIMATE_BONDING</a> = 1 <span class="comment">// Created by island splitting or chunk merge, etc. and should check for inexact bonds</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Noise fracturing configuration for chunks&#39;s faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>&#160; <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>&#160; <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>&#160; uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>&#160; int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>&#160; <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>&#160; <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>&#160; <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>&#160; <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>&#160; <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>&#160; <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*&amp; sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; offset, <span class="keywordtype">float</span>&amp; scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>&amp; rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>&amp; noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>&amp; getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*&amp; output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*&amp; chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*&amp; vertexBuffer, uint32_t*&amp; indexBuffer, uint32_t*&amp; indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteChunkSubhierarchy(int32_t chunkId, <span class="keywordtype">bool</span> deleteRoot = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setApproximateBonding(uint32_t chunkIndex, <span class="keywordtype">bool</span> useApproximateBonding) = 0;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;};</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div>
+<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff"> 52</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff">APPROXIMATE_BONDING</a> = 1 <span class="comment">// Created by island splitting or chunk merge, etc. and should check for inexact bonds</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Noise fracturing configuration for chunks&#39;s faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>&#160; <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>&#160; <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>&#160; uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>&#160; int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>&#160; <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>&#160; <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>&#160; <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>&#160; <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>&#160; <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>&#160; <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;};</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*&amp; sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; offset, <span class="keywordtype">float</span>&amp; scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>&amp; rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>&amp; noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>&amp; getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*&amp; output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*&amp; chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*&amp; vertexBuffer, uint32_t*&amp; indexBuffer, uint32_t*&amp; indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteChunkSubhierarchy(int32_t chunkId, <span class="keywordtype">bool</span> deleteRoot = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setApproximateBonding(uint32_t chunkIndex, <span class="keywordtype">bool</span> useApproximateBonding) = 0;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;};</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html">Nv::Blast::ChunkInfo</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:179</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a1c8d1bbcf531b04e6ff52f5357987794"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">Nv::Blast::VecMath::normal</a></div><div class="ttdeci">NV_INLINE float normal(const float a[3], float r[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:93</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html
index 5f02e2c..15997ef 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_
<div class="title">NvBlastExtAuthoringFractureToolImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_fracture_tool_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html">VoronoiSitesGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a01f58715063631ce078fa90bfd6a920c">VoronoiSitesGeneratorImpl</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7c248babbc4b16a16be9832f0aea767f">~VoronoiSitesGeneratorImpl</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7515cf0706f08e6191b67ac99b253f97">setBaseMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* m) <span class="keyword">override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad4a5521b93a40601ad53c36882f63a04">getVoronoiSites</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*&amp; sites) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a3939730ea1fa9eef6843dbbccfe1b921">addSite</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; site) <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#abfda4103b9ea3b04d28870cdb0cf9704">uniformlyGenerateSitesInMesh</a>(uint32_t numberOfSites) <span class="keyword">override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a57ec8f7229999994e516d4edefdf9eed">clusteredSitesGeneration</a>(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a84aa94e4229dbf2ea8ac304ce1a96a1f">radialPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps, int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a5b18977952c1d5efcd4772f8ce7520c2">generateInSphere</a>(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center) <span class="keyword">override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a81f5fbf6cdaaf3d2d45c2dff822ff9b9">setStencil</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) <span class="keyword">override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7377b65b5fafdb2eb4832f57c74f127d">clearStencil</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad2e1a222053fc19348990fb7ea8ed1a6">deleteInSphere</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) <span class="keyword">override</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; std::vector &lt;NvcVec3&gt; mGeneratedSites;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMesh;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mStencil;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* mRnd;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAccelerator;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html"> 146</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">FractureToolImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57"> 154</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57">FractureToolImpl</a>()</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; mPlaneIndexerOffset = 1;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; mChunkIdCounter = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; mRemoveIslands = <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; mInteriorMaterialId = <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d"> 162</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d">~FractureToolImpl</a>()</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; reset();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">void</span> reset() <span class="keyword">override</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; int32_t getInteriorMaterialId() <span class="keyword">const override</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) <span class="keyword">override</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) <span class="keyword">override</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; offset, <span class="keywordtype">float</span>&amp; scale) <span class="keyword">override</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>&amp; rotation, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; int32_t slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; position, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>&amp; noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">void</span> finalizeFracturing() <span class="keyword">override</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; uint32_t getChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>&amp; getChunkInfo(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshB) <span class="keyword">override</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*&amp; output) <span class="keyword">override</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) <span class="keyword">override</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; int32_t getChunkIndex(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; int32_t getChunkId(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; int32_t getChunkDepth(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*&amp; chunkIds) <span class="keyword">override</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; uint32_t getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*&amp; vertexBuffer, uint32_t*&amp; indexBuffer, uint32_t*&amp; indexBufferOffsets) <span class="keyword">override</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) <span class="keyword">override</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) <span class="keyword">override</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordtype">bool</span> deleteChunkSubhierarchy(int32_t chunkId, <span class="keywordtype">bool</span> deleteRoot = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">bool</span> setApproximateBonding(uint32_t chunkId, <span class="keywordtype">bool</span> useApproximateBonding) <span class="keyword">override</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) <span class="keyword">override</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="keyword">private</span>: </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">bool</span> isAncestorForChunk(int32_t ancestorId, int32_t chunkId);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; int32_t slicingNoisy(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; uint32_t stretchGroup(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; group, std::vector&lt;std::vector&lt;uint32_t&gt;&gt;&amp; graph);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordtype">void</span> rebuildAdjGraph(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; chunksToRebuild, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt;&amp; chunkGraph);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side, std::set&lt;uint32_t&gt;&amp; mask);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordtype">void</span> markLeaves();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; uint32_t createNewChunk(uint32_t parentId);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f"> 419</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f">mScaleFactor</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925"> 420</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925">mOffset</a>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">/* Chunk mesh wrappers */</span></div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1"> 423</a></span>&#160; std::vector&lt;Triangulator*&gt; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1">mChunkPostprocessors</a>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b"> 427</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b">mPlaneIndexerOffset</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914"> 428</a></span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914">mChunkIdCounter</a>;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1"> 429</a></span>&#160; std::vector&lt;ChunkInfo&gt; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1">mChunkData</a>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e"> 431</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e">mRemoveIslands</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962"> 432</a></span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962">mInteriorMaterialId</a>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;};</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a83271d24d04e44d4b938de44bce332e8">findCellBasePlanes</a>(<span class="keyword">const</span> std::vector&lt;NvcVec3&gt;&amp; sites, std::vector&lt;std::vector&lt;int32_t&gt; &gt;&amp; neighboors);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="namespace_nv_1_1_blast.html#a4371fd33bb235ab1c79ddce6caf51ee5">getCellMesh</a>(<span class="keyword">class</span> <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>&amp; eval, int32_t planeIndexerOffset, int32_t cellId, <span class="keyword">const</span> std::vector&lt;NvcVec3&gt;&amp; sites, std::vector &lt; std::vector&lt;int32_t&gt; &gt;&amp; neighboors, int32_t interiorMaterialId, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> origin);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div>
+<a href="_nv_blast_ext_authoring_fracture_tool_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html">VoronoiSitesGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a01f58715063631ce078fa90bfd6a920c">VoronoiSitesGeneratorImpl</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7c248babbc4b16a16be9832f0aea767f">~VoronoiSitesGeneratorImpl</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7515cf0706f08e6191b67ac99b253f97">setBaseMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* m) <span class="keyword">override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad4a5521b93a40601ad53c36882f63a04">getVoronoiSites</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*&amp; sites) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a3939730ea1fa9eef6843dbbccfe1b921">addSite</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; site) <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#abfda4103b9ea3b04d28870cdb0cf9704">uniformlyGenerateSitesInMesh</a>(uint32_t numberOfSites) <span class="keyword">override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a57ec8f7229999994e516d4edefdf9eed">clusteredSitesGeneration</a>(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a84aa94e4229dbf2ea8ac304ce1a96a1f">radialPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps, int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a5b18977952c1d5efcd4772f8ce7520c2">generateInSphere</a>(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center) <span class="keyword">override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a81f5fbf6cdaaf3d2d45c2dff822ff9b9">setStencil</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) <span class="keyword">override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7377b65b5fafdb2eb4832f57c74f127d">clearStencil</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad2e1a222053fc19348990fb7ea8ed1a6">deleteInSphere</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) <span class="keyword">override</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; std::vector &lt;NvcVec3&gt; mGeneratedSites;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMesh;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mStencil;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* mRnd;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAccelerator;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html"> 146</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">FractureToolImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57"> 154</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57">FractureToolImpl</a>()</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; mPlaneIndexerOffset = 1;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; mChunkIdCounter = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; mRemoveIslands = <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; mInteriorMaterialId = <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d"> 162</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d">~FractureToolImpl</a>()</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; reset();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">void</span> reset() <span class="keyword">override</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; int32_t getInteriorMaterialId() <span class="keyword">const override</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) <span class="keyword">override</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) <span class="keyword">override</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; offset, <span class="keywordtype">float</span>&amp; scale) <span class="keyword">override</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>&amp; rotation, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; int32_t slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; position, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>&amp; noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">void</span> finalizeFracturing() <span class="keyword">override</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; uint32_t getChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>&amp; getChunkInfo(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>&amp; meshB) <span class="keyword">override</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*&amp; output) <span class="keyword">override</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) <span class="keyword">override</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; int32_t getChunkIndex(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; int32_t getChunkId(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; int32_t getChunkDepth(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*&amp; chunkIds) <span class="keyword">override</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; uint32_t getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*&amp; vertexBuffer, uint32_t*&amp; indexBuffer, uint32_t*&amp; indexBufferOffsets) <span class="keyword">override</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) <span class="keyword">override</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) <span class="keyword">override</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordtype">bool</span> deleteChunkSubhierarchy(int32_t chunkId, <span class="keywordtype">bool</span> deleteRoot = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">bool</span> setApproximateBonding(uint32_t chunkId, <span class="keywordtype">bool</span> useApproximateBonding) <span class="keyword">override</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) <span class="keyword">override</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="keyword">private</span>: </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">bool</span> isAncestorForChunk(int32_t ancestorId, int32_t chunkId);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; int32_t slicingNoisy(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>&amp; conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; uint32_t stretchGroup(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; group, std::vector&lt;std::vector&lt;uint32_t&gt;&gt;&amp; graph);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordtype">void</span> rebuildAdjGraph(<span class="keyword">const</span> std::vector&lt;uint32_t&gt;&amp; chunksToRebuild, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; std::vector&lt;std::vector&lt;uint32_t&gt; &gt;&amp; chunkGraph);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side, std::set&lt;uint32_t&gt;&amp; mask);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordtype">void</span> markLeaves();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; uint32_t createNewChunk(uint32_t parentId);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f"> 419</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f">mScaleFactor</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925"> 420</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925">mOffset</a>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">/* Chunk mesh wrappers */</span></div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1"> 423</a></span>&#160; std::vector&lt;Triangulator*&gt; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1">mChunkPostprocessors</a>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b"> 427</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b">mPlaneIndexerOffset</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914"> 428</a></span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914">mChunkIdCounter</a>;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1"> 429</a></span>&#160; std::vector&lt;ChunkInfo&gt; <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1">mChunkData</a>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e"> 431</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e">mRemoveIslands</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962"> 432</a></span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962">mInteriorMaterialId</a>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;};</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a83271d24d04e44d4b938de44bce332e8">findCellBasePlanes</a>(<span class="keyword">const</span> std::vector&lt;NvcVec3&gt;&amp; sites, std::vector&lt;std::vector&lt;int32_t&gt; &gt;&amp; neighboors);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="namespace_nv_1_1_blast.html#a4371fd33bb235ab1c79ddce6caf51ee5">getCellMesh</a>(<span class="keyword">class</span> <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>&amp; eval, int32_t planeIndexerOffset, int32_t cellId, <span class="keyword">const</span> std::vector&lt;NvcVec3&gt;&amp; sites, std::vector &lt; std::vector&lt;int32_t&gt; &gt;&amp; neighboors, int32_t interiorMaterialId, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> origin);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_a5b18977952c1d5efcd4772f8ce7520c2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a5b18977952c1d5efcd4772f8ce7520c2">Nv::Blast::VoronoiSitesGeneratorImpl::generateInSphere</a></div><div class="ttdeci">void generateInSphere(const uint32_t count, const float radius, const NvcVec3 &amp;center) override</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html">Nv::Blast::ChunkInfo</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_ad4a5521b93a40601ad53c36882f63a04"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad4a5521b93a40601ad53c36882f63a04">Nv::Blast::VoronoiSitesGeneratorImpl::getVoronoiSites</a></div><div class="ttdeci">uint32_t getVoronoiSites(const NvcVec3 *&amp;sites) override</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html
index d78bd76..76b3490 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_internal_commo
<div class="title">NvBlastExtAuthoringInternalCommon.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_internal_common_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTINTERNALCOMMON_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTINTERNALCOMMON_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_px_shared_helpers_8h.html">NvBlastPxSharedHelpers.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxBounds3.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;PxMath.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a>, <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac18f86b13ce9fff59e084707e199646a">e</a>; <span class="comment">// Starting and ending vertices</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690"> 51</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a>; <span class="comment">// Parent facet index</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#aa37d68282f0ac6ec2f5f1e277a10d04f"> 52</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#aa37d68282f0ac6ec2f5f1e277a10d04f">EdgeWithParent</a>() : s(0), e(0), parent(0) {}</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a69cbe936ff0e6145fc3f5ca804a35025"> 53</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a69cbe936ff0e6145fc3f5ca804a35025">EdgeWithParent</a>(uint32_t s, uint32_t e, uint32_t p) : s(s), e(e), parent(p) {}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_comparator.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_comparator.html">EdgeComparator</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_comparator.html#a13648d8b9c80da2af99ed85760ec38ac"> 62</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_comparator.html#a13648d8b9c80da2af99ed85760ec38ac">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a> == b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a> == b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac18f86b13ce9fff59e084707e199646a">e</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac18f86b13ce9fff59e084707e199646a">e</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;};</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#acf1aa675b24e661db37949852a97b58f"> 82</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#acf1aa675b24e661db37949852a97b58f">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; b)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> == b.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7"> 93</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66"> 95</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a85a6dd87b4024df1cddcd744fa2c0020"> 96</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a85a6dd87b4024df1cddcd744fa2c0020">XY_PLANE</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac"> 97</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a> = 1 &lt;&lt; 3,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152"> 99</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a> = 1 &lt;&lt; 4</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab77f76686c61a4a62d1aabb5e7b9c20a"> 105</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> <a class="code" href="namespace_nv_1_1_blast.html#ab77f76686c61a4a62d1aabb5e7b9c20a">getProjectionDirection</a>(<span class="keyword">const</span> physx::PxVec3&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">float</span> maxv = std::max(std::abs(normal.x), std::max(std::abs(normal.y), std::abs(normal.z)));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> retVal;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (maxv == std::abs(normal.x))</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; retVal = <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (normal.x &lt; 0) retVal = (<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a>)((<span class="keywordtype">int</span>)retVal | (int)<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (maxv == std::abs(normal.y))</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; retVal = <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (normal.y &gt; 0) retVal = (<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a>)((<span class="keywordtype">int</span>)retVal | (int)<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; retVal = <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a85a6dd87b4024df1cddcd744fa2c0020">XY_PLANE</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (normal.z &lt; 0) retVal = (<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a>)((<span class="keywordtype">int</span>)retVal | (int)<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0"> 130</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> physx::PxVec2 <a class="code" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0">getProjectedPoint</a>(<span class="keyword">const</span> physx::PxVec3&amp; point, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.y, point.z);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a>)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.z);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.y);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a07798b57f728802d367a7efbea3ce3a7"> 143</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> physx::PxVec2 <a class="code" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0">getProjectedPoint</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0">getProjectedPoint</a>((<span class="keyword">const</span> physx::PxVec3&amp;)point, dir);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a5f4aa5b6b2451711fccf09757bdd2e1e"> 151</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> physx::PxVec2 <a class="code" href="namespace_nv_1_1_blast.html#a5f4aa5b6b2451711fccf09757bdd2e1e">getProjectedPointWithWinding</a>(<span class="keyword">const</span> physx::PxVec3&amp; point, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.z, point.y);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.y, point.z);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.z, point.x);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.z);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.y, point.x);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.y);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#aa8f38c265574616c9326504a5d9919f7"> 179</a></span>&#160;<span class="preprocessor">#define MAXIMUM_EXTENT 1000 * 1000 * 1000</span></div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322"> 180</a></span>&#160;<span class="preprocessor">#define BBOX_TEST_EPS 1e-5f </span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab18c3161481f8a05cd11866ef1afbd9e"> 185</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#ab18c3161481f8a05cd11866ef1afbd9e">weakBoundingBoxIntersection</a>(<span class="keyword">const</span> physx::PxBounds3&amp; aBox, <span class="keyword">const</span> physx::PxBounds3&amp; bBox)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> (std::max(aBox.minimum.x, bBox.minimum.x) &gt; std::min(aBox.maximum.x, bBox.maximum.x) + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322">BBOX_TEST_EPS</a>)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (std::max(aBox.minimum.y, bBox.minimum.y) &gt; std::min(aBox.maximum.y, bBox.maximum.y) + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322">BBOX_TEST_EPS</a>)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (std::max(aBox.minimum.z, bBox.minimum.z) &gt; std::min(aBox.maximum.z, bBox.maximum.z) + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322">BBOX_TEST_EPS</a>)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a7bba8d1f555e341010029032391276a6"> 201</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a7bba8d1f555e341010029032391276a6">getPlaneSegmentIntersection</a>(<span class="keyword">const</span> physx::PxPlane&amp; pl, <span class="keyword">const</span> physx::PxVec3&amp; a, <span class="keyword">const</span> physx::PxVec3&amp; b,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; physx::PxVec3&amp; result)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a171cbcf9510fa3804c56ecfcf78da929">div</a> = (b - a).<a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">dot</a>(pl.n);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (physx::PxAbs(div) &lt; 0.0001f)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (pl.contains(a))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; result = a;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">float</span> t = (-a.dot(pl.n) - pl.d) / div;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (t &lt; 0.0f || t &gt; 1.0f)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; result = (b - a) * t + a;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b"> 227</a></span>&#160;<span class="preprocessor">#define POS_COMPARISON_OFFSET 1e-5f</span></div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22"> 228</a></span>&#160;<span class="preprocessor">#define NORM_COMPARISON_OFFSET 1e-3f</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_comp.html"> 232</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vrt_comp.html">VrtComp</a></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_comp.html#a394c39b826fd05e37f7ea5403f13fb2a"> 234</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_vrt_comp.html#a394c39b826fd05e37f7ea5403f13fb2a">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; };</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;};</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html"> 261</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html">VrtPositionComparator</a></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#a03573f86530a247194da20c946c159b9"> 263</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#a03573f86530a247194da20c946c159b9">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; };</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c"> 273</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> operator()(a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>, b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; };</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;};</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad7f758469903c6a753a827ee1525a1e8"> 280</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#ad7f758469903c6a753a827ee1525a1e8">calculateCollisionHullVolume</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span> (hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a> == 0)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> 0.0f;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// Find an approximate centroid for a more accurate calculation</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> centroid = { 0.0f, 0.0f, 0.0f };</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>; ++i)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; centroid = centroid + hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i];</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; centroid = centroid / hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">float</span> volume = 0.0f;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4">polygonDataCount</a>; ++i)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a>&amp; poly = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da">polygonData</a>[i];</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span> (poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a> &lt; 3)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">const</span> uint32_t i0 = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>[poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a>];</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; uint32_t i1 = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>[poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a> + 1];</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span> (uint32_t j = 2; j &lt; poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a>; ++j)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> uint32_t i2 = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>[poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a> + j];</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> a = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i0] - centroid;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> b = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i1] - centroid;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> c = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i2] - centroid;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; volume +=</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; (a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * c.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * c.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * c.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * c.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * c.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * c.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; i1 = i2;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> (1.0f / 6.0f) * std::abs(volume);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_vrt_position_comparator_html_aaf2b5a71ca93c9365d8ddf2df3dab86c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c">Nv::Blast::VrtPositionComparator::operator()</a></div><div class="ttdeci">bool operator()(const Vertex &amp;a, const Vertex &amp;b) const</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:273</div></div>
+<a href="_nv_blast_ext_authoring_internal_common_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTINTERNALCOMMON_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTINTERNALCOMMON_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_px_shared_helpers_8h.html">NvBlastPxSharedHelpers.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxBounds3.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;PxMath.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a>, <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac18f86b13ce9fff59e084707e199646a">e</a>; <span class="comment">// Starting and ending vertices</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690"> 51</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a>; <span class="comment">// Parent facet index</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#aa37d68282f0ac6ec2f5f1e277a10d04f"> 52</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#aa37d68282f0ac6ec2f5f1e277a10d04f">EdgeWithParent</a>() : s(0), e(0), parent(0) {}</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a69cbe936ff0e6145fc3f5ca804a35025"> 53</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a69cbe936ff0e6145fc3f5ca804a35025">EdgeWithParent</a>(uint32_t s, uint32_t e, uint32_t p) : s(s), e(e), parent(p) {}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_comparator.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_comparator.html">EdgeComparator</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_comparator.html#a13648d8b9c80da2af99ed85760ec38ac"> 62</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_comparator.html#a13648d8b9c80da2af99ed85760ec38ac">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a> == b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a> == b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac18f86b13ce9fff59e084707e199646a">e</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac18f86b13ce9fff59e084707e199646a">e</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">s</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html#ac2356627cc0f43aaa5f417a36e1c5690">parent</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;};</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#acf1aa675b24e661db37949852a97b58f"> 82</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#acf1aa675b24e661db37949852a97b58f">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; b)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> == b.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7"> 93</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66"> 95</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a> = 1 &lt;&lt; 1,</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a85a6dd87b4024df1cddcd744fa2c0020"> 96</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a85a6dd87b4024df1cddcd744fa2c0020">XY_PLANE</a> = 1 &lt;&lt; 2,</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac"> 97</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a> = 1 &lt;&lt; 3,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152"> 99</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a> = 1 &lt;&lt; 4</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab77f76686c61a4a62d1aabb5e7b9c20a"> 105</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> <a class="code" href="namespace_nv_1_1_blast.html#ab77f76686c61a4a62d1aabb5e7b9c20a">getProjectionDirection</a>(<span class="keyword">const</span> physx::PxVec3&amp; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">float</span> maxv = std::max(std::abs(normal.x), std::max(std::abs(normal.y), std::abs(normal.z)));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> retVal;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (maxv == std::abs(normal.x))</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; retVal = <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (normal.x &lt; 0) retVal = (<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a>)((<span class="keywordtype">int</span>)retVal | (int)<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (maxv == std::abs(normal.y))</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; retVal = <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (normal.y &gt; 0) retVal = (<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a>)((<span class="keywordtype">int</span>)retVal | (int)<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; retVal = <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a85a6dd87b4024df1cddcd744fa2c0020">XY_PLANE</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (normal.z &lt; 0) retVal = (<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a>)((<span class="keywordtype">int</span>)retVal | (int)<a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0"> 130</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> physx::PxVec2 <a class="code" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0">getProjectedPoint</a>(<span class="keyword">const</span> physx::PxVec3&amp; point, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.y, point.z);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a>)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.z);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.y);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a07798b57f728802d367a7efbea3ce3a7"> 143</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> physx::PxVec2 <a class="code" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0">getProjectedPoint</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; point, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a44d0b01b83d001724a34646ec96d17f0">getProjectedPoint</a>((<span class="keyword">const</span> physx::PxVec3&amp;)point, dir);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a5f4aa5b6b2451711fccf09757bdd2e1e"> 151</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> physx::PxVec2 <a class="code" href="namespace_nv_1_1_blast.html#a5f4aa5b6b2451711fccf09757bdd2e1e">getProjectedPointWithWinding</a>(<span class="keyword">const</span> physx::PxVec3&amp; point, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7ad1627b65f07422426fe4a478c7836a66">YZ_PLANE</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.z, point.y);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.y, point.z);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac">ZX_PLANE</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.z, point.x);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.z);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (dir &amp; <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152">OPPOSITE_WINDING</a>)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.y, point.x);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> physx::PxVec2(point.x, point.y);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#aa8f38c265574616c9326504a5d9919f7"> 179</a></span>&#160;<span class="preprocessor">#define MAXIMUM_EXTENT 1000 * 1000 * 1000</span></div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322"> 180</a></span>&#160;<span class="preprocessor">#define BBOX_TEST_EPS 1e-5f </span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab18c3161481f8a05cd11866ef1afbd9e"> 185</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#ab18c3161481f8a05cd11866ef1afbd9e">weakBoundingBoxIntersection</a>(<span class="keyword">const</span> physx::PxBounds3&amp; aBox, <span class="keyword">const</span> physx::PxBounds3&amp; bBox)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> (std::max(aBox.minimum.x, bBox.minimum.x) &gt; std::min(aBox.maximum.x, bBox.maximum.x) + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322">BBOX_TEST_EPS</a>)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (std::max(aBox.minimum.y, bBox.minimum.y) &gt; std::min(aBox.maximum.y, bBox.maximum.y) + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322">BBOX_TEST_EPS</a>)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (std::max(aBox.minimum.z, bBox.minimum.z) &gt; std::min(aBox.maximum.z, bBox.maximum.z) + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322">BBOX_TEST_EPS</a>)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a7bba8d1f555e341010029032391276a6"> 201</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a7bba8d1f555e341010029032391276a6">getPlaneSegmentIntersection</a>(<span class="keyword">const</span> physx::PxPlane&amp; pl, <span class="keyword">const</span> physx::PxVec3&amp; a, <span class="keyword">const</span> physx::PxVec3&amp; b,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; physx::PxVec3&amp; result)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a171cbcf9510fa3804c56ecfcf78da929">div</a> = (b - a).<a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">dot</a>(pl.n);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (physx::PxAbs(div) &lt; 0.0001f)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (pl.contains(a))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; result = a;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">float</span> t = (-a.dot(pl.n) - pl.d) / div;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (t &lt; 0.0f || t &gt; 1.0f)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; result = (b - a) * t + a;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b"> 227</a></span>&#160;<span class="preprocessor">#define POS_COMPARISON_OFFSET 1e-5f</span></div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22"> 228</a></span>&#160;<span class="preprocessor">#define NORM_COMPARISON_OFFSET 1e-3f</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_comp.html"> 232</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vrt_comp.html">VrtComp</a></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_comp.html#a394c39b826fd05e37f7ea5403f13fb2a"> 234</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_vrt_comp.html#a394c39b826fd05e37f7ea5403f13fb2a">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22">NORM_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa">uv</a>[0].<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; };</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;};</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html"> 261</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html">VrtPositionComparator</a></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#a03573f86530a247194da20c946c159b9"> 263</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#a03573f86530a247194da20c946c159b9">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &lt; b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - <a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b">POS_COMPARISON_OFFSET</a> &gt; b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; };</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c"> 273</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> operator()(a.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>, b.<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; };</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;};</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad7f758469903c6a753a827ee1525a1e8"> 280</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#ad7f758469903c6a753a827ee1525a1e8">calculateCollisionHullVolume</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span> (hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a> == 0)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> 0.0f;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// Find an approximate centroid for a more accurate calculation</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> centroid = { 0.0f, 0.0f, 0.0f };</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>; ++i)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; centroid = centroid + hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i];</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; centroid = centroid / hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">float</span> volume = 0.0f;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4">polygonDataCount</a>; ++i)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a>&amp; poly = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da">polygonData</a>[i];</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span> (poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a> &lt; 3)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">const</span> uint32_t i0 = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>[poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a>];</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; uint32_t i1 = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>[poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a> + 1];</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span> (uint32_t j = 2; j &lt; poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a>; ++j)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> uint32_t i2 = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>[poly.<a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a> + j];</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> a = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i0] - centroid;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> b = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i1] - centroid;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> c = hull.<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>[i2] - centroid;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; volume +=</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; (a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * c.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - a.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * c.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * c.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + a.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * b.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * c.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * b.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * c.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - a.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * b.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * c.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; i1 = i2;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> (1.0f / 6.0f) * std::abs(volume);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_vrt_position_comparator_html_aaf2b5a71ca93c9365d8ddf2df3dab86c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c">Nv::Blast::VrtPositionComparator::operator()</a></div><div class="ttdeci">bool operator()(const Vertex &amp;a, const Vertex &amp;b) const</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:273</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a2dbf0cc037620db35223513e817444f7"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">Nv::Blast::ProjectionDirections</a></div><div class="ttdeci">ProjectionDirections</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:93</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_html_ae06c88ae71857d247fd27130265f5e25"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">Nv::Blast::Edge::e</a></div><div class="ttdeci">uint32_t e</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:61</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_with_parent_html_a7157f6d3f264ba6158f4614285725bcf"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_with_parent.html#a7157f6d3f264ba6158f4614285725bcf">Nv::Blast::EdgeWithParent::s</a></div><div class="ttdeci">uint32_t s</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:50</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html
index 08a154c..b6a2c93 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_8h_source
<div class="title">NvBlastExtAuthoringMesh.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7"> 46</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7">~Mesh</a>() {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adf6faa07b98b634b86a198ad4a6fcc14">release</a>() = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acc7ba66081cfd2bd55c5eae7d6053c71">isValid</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a55945b655bb1cb9fed0d481497942c71">getVerticesWritable</a>() = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a927148143ec2335c9ed6dd9c65215196">getVertices</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">getEdgesWritable</a>() = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a085ffcc67f9cd938f93d3aa43a0d0bf0">getEdges</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a480c3919561789e75df950aea69fec4a">getFacetsBufferWritable</a>() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adcee600d1e263eedc13561b99c7ea762">getFacetsBuffer</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2f6a3389000c02e892d4514fd1322765">getFacetWritable</a>(int32_t facet) = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a1737163f2dc8fe4456f5df27ab5740b8">getFacet</a>(int32_t facet) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#afc8859fe20911e2ab593b9075223a36a">getEdgesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ab86107cfd02392fd2a49b79fe0367887">getVerticesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a5bb922c1dcb50c67e2105f84454019af">getFacetCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2dcb0655c4e75c15dd465e756ec6f174">getBoundingBox</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ad7c27dcdd5d5f28da04605410721d016">getBoundingBoxWritable</a>() = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#af082c3fd4ea1badcb0263bad0682c20b">setMaterialId</a>(<span class="keyword">const</span> int32_t* materialIds) = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acfffa10ab877367067c0651320e39852">replaceMaterialId</a>(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#aed83e124b04216f54989ea9f8ade52d7">setSmoothingGroup</a>(<span class="keyword">const</span> int32_t* smoothingGroups) = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a24544d5b6a315cee19d67da9ed0fd8dd">recalculateBoundingBox</a>() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a220f3c64f6a192843ab44c3728960820">getMeshVolume</a>() = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a3cb47793b60f763b5bac58c17a3c5bb8">calcPerFacetBounds</a>() = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a93b7642d29e27da93b76d420a804aef2">getFacetBound</a>(uint32_t index) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_ac3e5b150bd16d7f22b22fb571de9004f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">Nv::Blast::Mesh::getEdgesWritable</a></div><div class="ttdeci">virtual Edge * getEdgesWritable()=0</div></div>
+<a href="_nv_blast_ext_authoring_mesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGMESH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7"> 46</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a9b5fbdd369ae324448c536ceabe82ad7">~Mesh</a>() {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adf6faa07b98b634b86a198ad4a6fcc14">release</a>() = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acc7ba66081cfd2bd55c5eae7d6053c71">isValid</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a55945b655bb1cb9fed0d481497942c71">getVerticesWritable</a>() = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a927148143ec2335c9ed6dd9c65215196">getVertices</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">getEdgesWritable</a>() = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a085ffcc67f9cd938f93d3aa43a0d0bf0">getEdges</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a480c3919561789e75df950aea69fec4a">getFacetsBufferWritable</a>() = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#adcee600d1e263eedc13561b99c7ea762">getFacetsBuffer</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2f6a3389000c02e892d4514fd1322765">getFacetWritable</a>(int32_t facet) = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a1737163f2dc8fe4456f5df27ab5740b8">getFacet</a>(int32_t facet) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#afc8859fe20911e2ab593b9075223a36a">getEdgesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ab86107cfd02392fd2a49b79fe0367887">getVerticesCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a5bb922c1dcb50c67e2105f84454019af">getFacetCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a2dcb0655c4e75c15dd465e756ec6f174">getBoundingBox</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#ad7c27dcdd5d5f28da04605410721d016">getBoundingBoxWritable</a>() = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#af082c3fd4ea1badcb0263bad0682c20b">setMaterialId</a>(<span class="keyword">const</span> int32_t* materialIds) = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#acfffa10ab877367067c0651320e39852">replaceMaterialId</a>(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#aed83e124b04216f54989ea9f8ade52d7">setSmoothingGroup</a>(<span class="keyword">const</span> int32_t* smoothingGroups) = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a24544d5b6a315cee19d67da9ed0fd8dd">recalculateBoundingBox</a>() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a220f3c64f6a192843ab44c3728960820">getMeshVolume</a>() = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a3cb47793b60f763b5bac58c17a3c5bb8">calcPerFacetBounds</a>() = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh.html#a93b7642d29e27da93b76d420a804aef2">getFacetBound</a>(uint32_t index) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGMESH_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_ac3e5b150bd16d7f22b22fb571de9004f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#ac3e5b150bd16d7f22b22fb571de9004f">Nv::Blast::Mesh::getEdgesWritable</a></div><div class="ttdeci">virtual Edge * getEdgesWritable()=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_a2f6a3389000c02e892d4514fd1322765"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#a2f6a3389000c02e892d4514fd1322765">Nv::Blast::Mesh::getFacetWritable</a></div><div class="ttdeci">virtual Facet * getFacetWritable(int32_t facet)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_aed83e124b04216f54989ea9f8ade52d7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#aed83e124b04216f54989ea9f8ade52d7">Nv::Blast::Mesh::setSmoothingGroup</a></div><div class="ttdeci">virtual void setSmoothingGroup(const int32_t *smoothingGroups)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html_a480c3919561789e75df950aea69fec4a"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html#a480c3919561789e75df950aea69fec4a">Nv::Blast::Mesh::getFacetsBufferWritable</a></div><div class="ttdeci">virtual Facet * getFacetsBufferWritable()=0</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html
index 3310ebc..1aa481d 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_cleaner_8
<div class="title">NvBlastExtAuthoringMeshCleaner.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc"> 55</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">~MeshCleaner</a>() {}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a6681704bd0186e56c55f7b9ba9174d27">cleanMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9cb8249f4619e4e1169ae1553d3bdd41">release</a>() = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html_a9716fd1256337c0149bbed8d447438bc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">Nv::Blast::MeshCleaner::~MeshCleaner</a></div><div class="ttdeci">virtual ~MeshCleaner()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:55</div></div>
+<a href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc"> 55</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">~MeshCleaner</a>() {}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a6681704bd0186e56c55f7b9ba9174d27">cleanMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9cb8249f4619e4e1169ae1553d3bdd41">release</a>() = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html_a9716fd1256337c0149bbed8d447438bc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html#a9716fd1256337c0149bbed8d447438bc">Nv::Blast::MeshCleaner::~MeshCleaner</a></div><div class="ttdeci">virtual ~MeshCleaner()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:52</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMesh.h:42</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_impl_8h_source.html
index a7aa9a3..7ac15fb 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_cleaner_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_cleaner_i
<div class="title">NvBlastExtAuthoringMeshCleanerImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_cleaner_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">NvBlastExtAuthoringMeshCleaner.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html">MeshCleanerImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#ada7e493f25076dd161d30e355b52afbe">cleanMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh) <span class="keyword">override</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#af333426248b9e09711c0a09fe3182c4f">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#a8ee34e78990e63a37f08079545cb17ba"> 51</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#a8ee34e78990e63a37f08079545cb17ba">~MeshCleanerImpl</a>() {};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:52</div></div>
+<a href="_nv_blast_ext_authoring_mesh_cleaner_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">NvBlastExtAuthoringMeshCleaner.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html">MeshCleanerImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner.html">MeshCleaner</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#ada7e493f25076dd161d30e355b52afbe">cleanMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh) <span class="keyword">override</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#af333426248b9e09711c0a09fe3182c4f">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#a8ee34e78990e63a37f08079545cb17ba"> 51</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html#a8ee34e78990e63a37f08079545cb17ba">~MeshCleanerImpl</a>() {};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner.html">Nv::Blast::MeshCleaner</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleaner.h:52</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMesh.h:42</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_cleaner_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_cleaner_impl.html">Nv::Blast::MeshCleanerImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshCleanerImpl.h:40</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_mesh_cleaner_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_mesh_cleaner_8h.html">NvBlastExtAuthoringMeshCleaner.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_impl_8h_source.html
index d34a4c2..8c74ac7 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_impl_8h_s
<div class="title">NvBlastExtAuthoringMeshImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGMESHIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGMESHIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;PxBounds3.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_impl.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html">MeshImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* position, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* normals, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* uv, uint32_t verticesCount, <span class="keyword">const</span> uint32_t* indices, uint32_t indicesCount);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* edges, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* facets, uint32_t posCount, uint32_t edgesCount, uint32_t facetsCount);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, uint32_t count);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, uint32_t count, uint32_t* indices, uint32_t indexCount, <span class="keywordtype">void</span>* materials, uint32_t materialStride);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a81e38e84fbe8d618580ae5f21f174cf6">~MeshImpl</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a611420e197bd938cda4c737f7543e6e0">isValid</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a582a256cb35c5921d3c132d93289b16c">getVerticesWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a1590a830a4d5ec1ac62300b2cc9d6214">getEdgesWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a82d3ee50e089daa034b033d45a387ee5">getFacetsBufferWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#aa3cafc9e72f84575081550b9f05c6816">getVertices</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#adb1bc85f36ba170694a268b593f9ff35">getEdges</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#ab58056e7f06d9441a25e892067fa655f">getFacetsBuffer</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a3136defb8903a7ef54ee497d71da9859">getFacetWritable</a>(int32_t facet) <span class="keyword">override</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a4679ecf7db414191d152e2b79af2c2cc">getFacet</a>(int32_t facet) <span class="keyword">const override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a85ddf08692dfda42187088f966b9e7ae">getEdgesCount</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a745bc7afc69940a4173e2618219e7abd">getVerticesCount</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#ab930517d05cb83a73aed79788a909979">getFacetCount</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a893f854a70609229802fad4889ab8914">getBoundingBox</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#ae6c92213b91e748fec7a592c20884e2b">getBoundingBoxWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a9e69417e462e30039484a4e405cfed24">recalculateBoundingBox</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a8141667f919d998d88cb97a83156394a">getMeshVolume</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a2d22ff67e8def5b58a895c6cab321ccf">setMaterialId</a>(<span class="keyword">const</span> int32_t* materialIds) <span class="keyword">override</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a6f24a8e40f0a9d163307b03d45310eb0">replaceMaterialId</a>(int32_t oldMaterialId, int32_t newMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a9d7a7efb5015fc64d764b2eff8a9fb53">setSmoothingGroup</a>(<span class="keyword">const</span> int32_t* smoothingGroups) <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a805da38fdd8b669bb1a5cdc86379b20e">calcPerFacetBounds</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a34690d4553a470169dd160488d861f4a">getFacetBound</a>(uint32_t index) <span class="keyword">const override</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;Vertex&gt; mVertices;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;Edge&gt; mEdges;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;Facet&gt; mFacets;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; physx::PxBounds3 mBounds;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::vector&lt;physx::PxBounds3&gt; mPerFacetBounds;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;};</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGMESHIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_impl_html_afd0a2a856078f362d0c0f5f2da1ba03e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e">Nv::Blast::MeshImpl::release</a></div><div class="ttdeci">virtual void release() override</div></div>
+<a href="_nv_blast_ext_authoring_mesh_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGMESHIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGMESHIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;PxBounds3.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_impl.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html">MeshImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* position, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* normals, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* uv, uint32_t verticesCount, <span class="keyword">const</span> uint32_t* indices, uint32_t indicesCount);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* edges, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* facets, uint32_t posCount, uint32_t edgesCount, uint32_t facetsCount);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, uint32_t count);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce">MeshImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, uint32_t count, uint32_t* indices, uint32_t indexCount, <span class="keywordtype">void</span>* materials, uint32_t materialStride);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a81e38e84fbe8d618580ae5f21f174cf6">~MeshImpl</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a611420e197bd938cda4c737f7543e6e0">isValid</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a582a256cb35c5921d3c132d93289b16c">getVerticesWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a1590a830a4d5ec1ac62300b2cc9d6214">getEdgesWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a82d3ee50e089daa034b033d45a387ee5">getFacetsBufferWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#aa3cafc9e72f84575081550b9f05c6816">getVertices</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#adb1bc85f36ba170694a268b593f9ff35">getEdges</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#ab58056e7f06d9441a25e892067fa655f">getFacetsBuffer</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a3136defb8903a7ef54ee497d71da9859">getFacetWritable</a>(int32_t facet) <span class="keyword">override</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a4679ecf7db414191d152e2b79af2c2cc">getFacet</a>(int32_t facet) <span class="keyword">const override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a85ddf08692dfda42187088f966b9e7ae">getEdgesCount</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a745bc7afc69940a4173e2618219e7abd">getVerticesCount</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#ab930517d05cb83a73aed79788a909979">getFacetCount</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a893f854a70609229802fad4889ab8914">getBoundingBox</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#ae6c92213b91e748fec7a592c20884e2b">getBoundingBoxWritable</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a9e69417e462e30039484a4e405cfed24">recalculateBoundingBox</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a8141667f919d998d88cb97a83156394a">getMeshVolume</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a2d22ff67e8def5b58a895c6cab321ccf">setMaterialId</a>(<span class="keyword">const</span> int32_t* materialIds) <span class="keyword">override</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a6f24a8e40f0a9d163307b03d45310eb0">replaceMaterialId</a>(int32_t oldMaterialId, int32_t newMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a9d7a7efb5015fc64d764b2eff8a9fb53">setSmoothingGroup</a>(<span class="keyword">const</span> int32_t* smoothingGroups) <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a805da38fdd8b669bb1a5cdc86379b20e">calcPerFacetBounds</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* <a class="code" href="class_nv_1_1_blast_1_1_mesh_impl.html#a34690d4553a470169dd160488d861f4a">getFacetBound</a>(uint32_t index) <span class="keyword">const override</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;Vertex&gt; mVertices;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;Edge&gt; mEdges;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;Facet&gt; mFacets;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; physx::PxBounds3 mBounds;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::vector&lt;physx::PxBounds3&gt; mPerFacetBounds;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;};</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGMESHIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_impl_html_afd0a2a856078f362d0c0f5f2da1ba03e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e">Nv::Blast::MeshImpl::release</a></div><div class="ttdeci">virtual void release() override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_impl_html_a3136defb8903a7ef54ee497d71da9859"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_impl.html#a3136defb8903a7ef54ee497d71da9859">Nv::Blast::MeshImpl::getFacetWritable</a></div><div class="ttdeci">Facet * getFacetWritable(int32_t facet) override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_impl_html_ab930517d05cb83a73aed79788a909979"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_impl.html#ab930517d05cb83a73aed79788a909979">Nv::Blast::MeshImpl::getFacetCount</a></div><div class="ttdeci">uint32_t getFacetCount() const override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_mesh_impl_html_ab58056e7f06d9441a25e892067fa655f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_impl.html#ab58056e7f06d9441a25e892067fa655f">Nv::Blast::MeshImpl::getFacetsBuffer</a></div><div class="ttdeci">const Facet * getFacetsBuffer() const override</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_noiser_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_noiser_8h_source.html
index 4208a41..a068de6 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_mesh_noiser_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_mesh_noiser_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_mesh_noiser_8h
<div class="title">NvBlastExtAuthoringMeshNoiser.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_mesh_noiser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHNOISER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHNOISER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html">NvBlastExtAuthoringInternalCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">class </span>SimplexNoise;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html"> 44</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html">EdgeToTriangles</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a8352a92eb1d63043f23353a142dfeaf0"> 46</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a8352a92eb1d63043f23353a142dfeaf0">tr</a>[2];</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3"> 47</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">c</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#af8461a7114523bdc114624d99e76daa7"> 48</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#af8461a7114523bdc114624d99e76daa7">EdgeToTriangles</a>()</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; c = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b"> 55</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b">add</a>(int32_t t)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tr[<a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">c</a>] = t;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ++<a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">c</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a66a5922811f503f3259cb15f92f17bd5"> 63</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a66a5922811f503f3259cb15f92f17bd5">replace</a>(int32_t from, int32_t to)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (tr[0] == from)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tr[0] = to;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (c == 2 &amp;&amp; tr[1] == from)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tr[1] = to;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a9089977b271562c9c59a8c164bea593b"> 80</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a9089977b271562c9c59a8c164bea593b">getNot</a>(int32_t <span class="keywordtype">id</span>)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (tr[0] != <span class="keywordtype">id</span>)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> tr[0];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (c == 2 &amp;&amp; tr[1] != <span class="keywordtype">id</span>)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> tr[1];</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; };</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_noiser.html"> 99</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_noiser.html">MeshNoiser</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a8ac835f5640e982006e29089f41aa9ae"> 102</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a8ac835f5640e982006e29089f41aa9ae">MeshNoiser</a>()</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; reset();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> reset();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33ca4021152d23cbda8700f03c113bdc7b81"> 112</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33c">EdgeFlag</a> { INTERNAL_EDGE, EXTERNAL_BORDER_EDGE, INTERNAL_BORDER_EDGE, EXTERNAL_EDGE, NONE };</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> setMesh(<span class="keyword">const</span> std::vector&lt;Triangle&gt;&amp; mesh);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">void</span> tesselateInternalSurface(<span class="keywordtype">float</span> maxLen);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> applyNoise(<a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a>&amp; noise, <span class="keywordtype">float</span> falloff, int32_t relaxIterations, <span class="keywordtype">float</span> relaxFactor);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; std::vector&lt;Triangle&gt; getMesh();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; physx::PxVec3 mOffset;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">float</span> mScale;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">bool</span> isTesselated;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; std::vector&lt;Vertex&gt; mVertices;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::vector&lt;TriangleIndexed&gt; mTriangles;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::vector&lt;Edge&gt; mEdges;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; std::map&lt;Vertex, int32_t, VrtComp&gt; mVertMap;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; std::map&lt;Edge, int32_t&gt; mEdgeMap;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; std::vector&lt;Triangle&gt; mResultTriangles;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; int32_t addVerticeIfNotExist(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; p);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; int32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; e);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; int32_t findEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; e);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> collapseEdge(int32_t <span class="keywordtype">id</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> divideEdge(int32_t <span class="keywordtype">id</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> updateVertEdgeInfo();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">void</span> updateEdgeTriangleInfo();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> relax(int32_t iterations, <span class="keywordtype">float</span> factor, std::vector&lt;Vertex&gt;&amp; vertices);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> recalcNoiseDirs();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; std::vector&lt;bool&gt; mRestrictionFlag;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; std::vector&lt;EdgeFlag&gt; mEdgeFlag;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::vector&lt;EdgeToTriangles&gt; mTrMeshEdToTr;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::vector&lt;int32_t&gt; mVertexValence;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; std::vector&lt;std::vector&lt;int32_t&gt; &gt; mVertexToTriangleMap;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; std::vector&lt;float&gt; mVerticesDistances;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; std::vector&lt;physx::PxVec3&gt; mVerticesNormalsSmoothed;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::vector&lt;uint32_t&gt; mPositionMappedVrt;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; std::vector&lt;std::vector&lt;int32_t&gt; &gt; mGeometryGraph;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> prebuildEdgeFlagArray();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> computePositionedMapping();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> computeFalloffAndNormals();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">void</span> prebuildTesselatedTriangles();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; };</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif // ! NVBLASTEXTAUTHORINGMESHNOISER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_noiser_html_a8ac835f5640e982006e29089f41aa9ae"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_noiser.html#a8ac835f5640e982006e29089f41aa9ae">Nv::Blast::MeshNoiser::MeshNoiser</a></div><div class="ttdeci">MeshNoiser()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshNoiser.h:102</div></div>
+<a href="_nv_blast_ext_authoring_mesh_noiser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGMESHNOISER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGMESHNOISER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html">NvBlastExtAuthoringInternalCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">class </span>SimplexNoise;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html"> 44</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html">EdgeToTriangles</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a8352a92eb1d63043f23353a142dfeaf0"> 46</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a8352a92eb1d63043f23353a142dfeaf0">tr</a>[2];</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3"> 47</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">c</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#af8461a7114523bdc114624d99e76daa7"> 48</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#af8461a7114523bdc114624d99e76daa7">EdgeToTriangles</a>()</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; c = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b"> 55</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b">add</a>(int32_t t)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tr[<a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">c</a>] = t;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ++<a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">c</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a66a5922811f503f3259cb15f92f17bd5"> 63</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a66a5922811f503f3259cb15f92f17bd5">replace</a>(int32_t from, int32_t to)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (tr[0] == from)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tr[0] = to;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (c == 2 &amp;&amp; tr[1] == from)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tr[1] = to;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a9089977b271562c9c59a8c164bea593b"> 80</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a9089977b271562c9c59a8c164bea593b">getNot</a>(int32_t <span class="keywordtype">id</span>)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (tr[0] != <span class="keywordtype">id</span>)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> tr[0];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (c == 2 &amp;&amp; tr[1] != <span class="keywordtype">id</span>)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> tr[1];</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; };</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_noiser.html"> 99</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_noiser.html">MeshNoiser</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a8ac835f5640e982006e29089f41aa9ae"> 102</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a8ac835f5640e982006e29089f41aa9ae">MeshNoiser</a>()</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; reset();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> reset();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33ca4021152d23cbda8700f03c113bdc7b81"> 112</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33c">EdgeFlag</a> { INTERNAL_EDGE, EXTERNAL_BORDER_EDGE, INTERNAL_BORDER_EDGE, EXTERNAL_EDGE, NONE };</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> setMesh(<span class="keyword">const</span> std::vector&lt;Triangle&gt;&amp; mesh);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">void</span> tesselateInternalSurface(<span class="keywordtype">float</span> maxLen);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> applyNoise(<a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a>&amp; noise, <span class="keywordtype">float</span> falloff, int32_t relaxIterations, <span class="keywordtype">float</span> relaxFactor);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; std::vector&lt;Triangle&gt; getMesh();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; physx::PxVec3 mOffset;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">float</span> mScale;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">bool</span> isTesselated;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; std::vector&lt;Vertex&gt; mVertices;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::vector&lt;TriangleIndexed&gt; mTriangles;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::vector&lt;Edge&gt; mEdges;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; std::map&lt;Vertex, int32_t, VrtComp&gt; mVertMap;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; std::map&lt;Edge, int32_t&gt; mEdgeMap;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; std::vector&lt;Triangle&gt; mResultTriangles;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; int32_t addVerticeIfNotExist(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; p);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; int32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; e);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; int32_t findEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a>&amp; e);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> collapseEdge(int32_t <span class="keywordtype">id</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> divideEdge(int32_t <span class="keywordtype">id</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> updateVertEdgeInfo();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">void</span> updateEdgeTriangleInfo();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> relax(int32_t iterations, <span class="keywordtype">float</span> factor, std::vector&lt;Vertex&gt;&amp; vertices);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> recalcNoiseDirs();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; std::vector&lt;bool&gt; mRestrictionFlag;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; std::vector&lt;EdgeFlag&gt; mEdgeFlag;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::vector&lt;EdgeToTriangles&gt; mTrMeshEdToTr;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::vector&lt;int32_t&gt; mVertexValence;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; std::vector&lt;std::vector&lt;int32_t&gt; &gt; mVertexToTriangleMap;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; std::vector&lt;float&gt; mVerticesDistances;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; std::vector&lt;physx::PxVec3&gt; mVerticesNormalsSmoothed;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::vector&lt;uint32_t&gt; mPositionMappedVrt;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; std::vector&lt;std::vector&lt;int32_t&gt; &gt; mGeometryGraph;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> prebuildEdgeFlagArray();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> computePositionedMapping();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> computeFalloffAndNormals();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">void</span> prebuildTesselatedTriangles();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; };</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif // ! NVBLASTEXTAUTHORINGMESHNOISER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_mesh_noiser_html_a8ac835f5640e982006e29089f41aa9ae"><div class="ttname"><a href="class_nv_1_1_blast_1_1_mesh_noiser.html#a8ac835f5640e982006e29089f41aa9ae">Nv::Blast::MeshNoiser::MeshNoiser</a></div><div class="ttdeci">MeshNoiser()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshNoiser.h:102</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_to_triangles_html_af8461a7114523bdc114624d99e76daa7"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#af8461a7114523bdc114624d99e76daa7">Nv::Blast::EdgeToTriangles::EdgeToTriangles</a></div><div class="ttdeci">EdgeToTriangles()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshNoiser.h:48</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_to_triangles_html_a70cb4d757a5e60e392ed88043c08664b"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b">Nv::Blast::EdgeToTriangles::add</a></div><div class="ttdeci">void add(int32_t t)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshNoiser.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_to_triangles_html_ac789134fae1cf431cf298dc71a7dc4c3"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3">Nv::Blast::EdgeToTriangles::c</a></div><div class="ttdeci">int32_t c</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringMeshNoiser.h:47</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html
index e96a7e0..5e638a2 100644
--- a/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_pattern_genera
<div class="title">NvBlastExtAuthoringPatternGenerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_pattern_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88"> 38</a></span>&#160; <span class="keyword">typedef</span> float (*<a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a>)(void);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html"> 40</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b"> 42</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b">RNG</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb"> 44</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a> = 1000;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html"> 47</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a815577cc15070656e2b14ed6c6c234cd"> 49</a></span>&#160; uint32_t cellsCount = 2;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a72c7c391785fcf3eb929db06b4a3acc4"> 51</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a8c666220227a45ab0e29fb72348c295d"> 52</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#afcf560708a0214765d01ce4fd2c382ae"> 53</a></span>&#160; <span class="keywordtype">float</span> radiusDistr = 1.0f;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#ac86e7fcca3804d3b554f0ea153ee6516"> 55</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html"> 58</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9">cellsCount</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179"> 62</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179">radiusMin</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa"> 63</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">radiusMax</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html"> 66</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8db39b69e964d8101adda7fcd6d0ca31"> 68</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a0ff8d3f6ca0577fe576b63b365f4d2d1"> 69</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#ab0d4e2ba3b7301e42dd366164f926462"> 71</a></span>&#160; uint32_t radialSteps = 3;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a05be2d62a3e6c523f4fefd38eb051ac3"> 72</a></span>&#160; uint32_t angularSteps = 8;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#aea9dd71b7e45e775ce616f155680e1c2"> 74</a></span>&#160; <span class="keywordtype">float</span> aperture = .0f;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a2c56c6584f48516069a0e9196888053f"> 76</a></span>&#160; <span class="keywordtype">float</span> angularNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a88b0bfd26937828f0a94f48246731b39"> 78</a></span>&#160; <span class="keywordtype">float</span> radialNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a838cc159e772872072e0efc65ab39f29"> 79</a></span>&#160; <span class="keywordtype">float</span> radialNoiseFrequency = 0.0f;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8fb32b5eaf08288834fecf87064a623a"> 81</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html"> 85</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17"> 90</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17">activationRadius</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9"> 91</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9">angle</a>; <span class="comment">// For cone shape activation</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b"> 92</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154bafa9e687314a5a446df72c678e5bb63ba"> 94</a></span>&#160; Point = 0,</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5">Line</a>,</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba2274b06a8d29f17584653284b7fd86c5"> 96</a></span>&#160; Cone</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4e82aa0e47674b6a14cbeae50563a6ea"> 98</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a> activationType = Point;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// ----------------------------------------------</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d"> 102</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d">cellsCount</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#ae22859e075aa4f750ba79ab7dce42059"> 103</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>** cellsMeshes = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_pattern_generator.html"> 108</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateUniformPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateBeamPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateRegularRadialPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateVoronoiPattern(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a>) = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#ad4de030f2bb5387d197e40cabf772b0f">savePatternToObj</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_ad4de030f2bb5387d197e40cabf772b0f"><div class="ttname"><a href="namespace_nv_1_1_blast.html#ad4de030f2bb5387d197e40cabf772b0f">Nv::Blast::savePatternToObj</a></div><div class="ttdeci">NVBLAST_API void savePatternToObj(DamagePattern *pattern)</div></div>
+<a href="_nv_blast_ext_authoring_pattern_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPATTERNGENERATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88"> 38</a></span>&#160; <span class="keyword">typedef</span> float (*<a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a>)(void);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html"> 40</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b"> 42</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a4e5bb14b7dd9af36721e2510c8cf4a88">RNG_CALLBACK</a> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#a7f743be5fe7e4daf2d2b031a041fa29b">RNG</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb"> 44</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a> = 1000;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html"> 47</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a815577cc15070656e2b14ed6c6c234cd"> 49</a></span>&#160; uint32_t cellsCount = 2;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a72c7c391785fcf3eb929db06b4a3acc4"> 51</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#a8c666220227a45ab0e29fb72348c295d"> 52</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#afcf560708a0214765d01ce4fd2c382ae"> 53</a></span>&#160; <span class="keywordtype">float</span> radiusDistr = 1.0f;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html#ac86e7fcca3804d3b554f0ea153ee6516"> 55</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html"> 58</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ad79ccd96c8ec0a78b5b95454b86f4fd9">cellsCount</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179"> 62</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179">radiusMin</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa"> 63</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">radiusMax</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html"> 66</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html">PatternDescriptor</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8db39b69e964d8101adda7fcd6d0ca31"> 68</a></span>&#160; <span class="keywordtype">float</span> radiusMin = 0.0f;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a0ff8d3f6ca0577fe576b63b365f4d2d1"> 69</a></span>&#160; <span class="keywordtype">float</span> radiusMax = 1.0f;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#ab0d4e2ba3b7301e42dd366164f926462"> 71</a></span>&#160; uint32_t radialSteps = 3;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a05be2d62a3e6c523f4fefd38eb051ac3"> 72</a></span>&#160; uint32_t angularSteps = 8;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#aea9dd71b7e45e775ce616f155680e1c2"> 74</a></span>&#160; <span class="keywordtype">float</span> aperture = .0f;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a2c56c6584f48516069a0e9196888053f"> 76</a></span>&#160; <span class="keywordtype">float</span> angularNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a88b0bfd26937828f0a94f48246731b39"> 78</a></span>&#160; <span class="keywordtype">float</span> radialNoiseAmplitude = 0.0f;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a838cc159e772872072e0efc65ab39f29"> 79</a></span>&#160; <span class="keywordtype">float</span> radialNoiseFrequency = 0.0f;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a8fb32b5eaf08288834fecf87064a623a"> 81</a></span>&#160; <span class="keywordtype">float</span> debrisRadiusMult = 1.0f;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html"> 85</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17"> 90</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#afba7f2aaf59f24992c8d95a418160d17">activationRadius</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9"> 91</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#abade8f3d71809556586e2eb70bfd79b9">angle</a>; <span class="comment">// For cone shape activation</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b"> 92</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154bafa9e687314a5a446df72c678e5bb63ba"> 94</a></span>&#160; Point = 0,</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba75ce7d138672d2c743512b41123383d5">Line</a>,</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154ba2274b06a8d29f17584653284b7fd86c5"> 96</a></span>&#160; Cone</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4e82aa0e47674b6a14cbeae50563a6ea"> 98</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#aac014f5d85ffaecb95328a2b10a2154b">ActivationDistanceType</a> activationType = Point;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// ----------------------------------------------</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d"> 102</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html#a4158abd1adffefe93bcecc89c4d7254d">cellsCount</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_damage_pattern.html#ae22859e075aa4f750ba79ab7dce42059"> 103</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>** cellsMeshes = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_pattern_generator.html"> 108</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateUniformPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateBeamPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateRegularRadialPattern(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a>* desc) = 0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateVoronoiPattern(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t <a class="code" href="struct_nv_1_1_blast_1_1_pattern_descriptor.html#ad5b24919d89dd367b0aeba80e06781eb">interiorMaterialId</a>) = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#ad4de030f2bb5387d197e40cabf772b0f">savePatternToObj</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_ad4de030f2bb5387d197e40cabf772b0f"><div class="ttname"><a href="namespace_nv_1_1_blast.html#ad4de030f2bb5387d197e40cabf772b0f">Nv::Blast::savePatternToObj</a></div><div class="ttdeci">NVBLAST_API void savePatternToObj(DamagePattern *pattern)</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_beam_pattern_desc_html_ac5cc1c03da7cac8a6ed0c0c1db2626aa"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#ac5cc1c03da7cac8a6ed0c0c1db2626aa">Nv::Blast::BeamPatternDesc::radiusMax</a></div><div class="ttdeci">float radiusMax</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:63</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_uniform_pattern_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">Nv::Blast::UniformPatternDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:47</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_beam_pattern_desc_html_abb1b2e8d9e8b50f7d2be7a20e1b55179"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html#abb1b2e8d9e8b50f7d2be7a20e1b55179">Nv::Blast::BeamPatternDesc::radiusMin</a></div><div class="ttdeci">float radiusMin</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:62</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_impl_8h_source.html
index ca66ea6..79d1230 100644
--- a/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_pattern_generator_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_pattern_genera
<div class="title">NvBlastExtAuthoringPatternGeneratorImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_pattern_generator_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPATTERNGENERATORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPATTERNGENERATORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_pattern_generator_8h.html">NvBlastExtAuthoringPatternGenerator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html"> 41</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html">PatternGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#aee9aca9b96ed9cd1e14e8cc5667c1c58">generateUniformPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a>* desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#abc58e4a531a3f63fbae85fabf716052a">generateBeamPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a>* desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a049e1052779d0ca3d0a40f58874ea505">generateRegularRadialPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a>* desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a540550fea08b19a6e4d50d1df81a27fa">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a48023dd07d8b6704e5430e51717d626d">generateVoronoiPattern</a>(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t interiorMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateVoronoiPatternInternal(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t interiorMaterialId, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a545c49277de85f6dbc05ec06319eee1b">angle</a> = 0.0f);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_pattern_generator_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_pattern_generator_8h.html">NvBlastExtAuthoringPatternGenerator.h</a></div></div>
+<a href="_nv_blast_ext_authoring_pattern_generator_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPATTERNGENERATORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPATTERNGENERATORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_pattern_generator_8h.html">NvBlastExtAuthoringPatternGenerator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html"> 41</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html">PatternGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator.html">PatternGenerator</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#aee9aca9b96ed9cd1e14e8cc5667c1c58">generateUniformPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">UniformPatternDesc</a>* desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#abc58e4a531a3f63fbae85fabf716052a">generateBeamPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_beam_pattern_desc.html">BeamPatternDesc</a>* desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a049e1052779d0ca3d0a40f58874ea505">generateRegularRadialPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html">RegularRadialPatternDesc</a>* desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a540550fea08b19a6e4d50d1df81a27fa">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* <a class="code" href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a48023dd07d8b6704e5430e51717d626d">generateVoronoiPattern</a>(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t interiorMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* generateVoronoiPatternInternal(uint32_t pointCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* points, int32_t interiorMaterialId, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a545c49277de85f6dbc05ec06319eee1b">angle</a> = 0.0f);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGMESHCLEANER_H</span></div><div class="ttc" id="_nv_blast_ext_authoring_pattern_generator_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_pattern_generator_8h.html">NvBlastExtAuthoringPatternGenerator.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_pattern_generator_impl_html_a48023dd07d8b6704e5430e51717d626d"><div class="ttname"><a href="class_nv_1_1_blast_1_1_pattern_generator_impl.html#a48023dd07d8b6704e5430e51717d626d">Nv::Blast::PatternGeneratorImpl::generateVoronoiPattern</a></div><div class="ttdeci">virtual DamagePattern * generateVoronoiPattern(uint32_t pointCount, const NvcVec3 *points, int32_t interiorMaterialId) override</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_uniform_pattern_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_uniform_pattern_desc.html">Nv::Blast::UniformPatternDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPatternGenerator.h:47</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_perlin_noise_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_perlin_noise_8h_source.html
index d0c6d15..4f5cd51 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_perlin_noise_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_perlin_noise_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_perlin_noise_8
<div class="title">NvBlastExtAuthoringPerlinNoise.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_perlin_noise_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPERLINNOISE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPERLINNOISE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec4.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5"> 37</a></span>&#160;<span class="preprocessor">#define PERLIN_NOISE_SAMPLE_TABLE 512</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using</span> physx::PxVec3;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/***********</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> Noise generation routines, copied from Apex. </span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67"> 49</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>&amp; rx, <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; ry, <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; rz, <span class="keyword">const</span> PxVec3 q)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> rx * q[0] + ry * q[1] + rz * q[2];</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab"> 54</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(<span class="keywordtype">float</span> t) { <span class="keywordflow">return</span> t * t * t * (t * (t * 6.0f - 15.0f) + 10.0f); }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c"> 56</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(<span class="keywordtype">float</span> t, <span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b) { <span class="keywordflow">return</span> a + t * (b - a); }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a"> 58</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(<span class="keywordtype">int</span> i, PxVec3 point, <span class="keywordtype">float</span>&amp; t, <span class="keywordtype">int</span>&amp; b0, <span class="keywordtype">int</span>&amp; b1, <span class="keywordtype">float</span>&amp; r0, <span class="keywordtype">float</span>&amp; r1)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; t = point[i] + (0x1000);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; b0 = ((int)t) &amp; (<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> - 1);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; b1 = (b0 + 1) &amp; (<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> - 1);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; r0 = t - (int)t;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; r1 = r0 - 1.0f;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a92d505a07c6038f564445af249ff5158"> 68</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#a92d505a07c6038f564445af249ff5158">noiseSample</a>(PxVec3 point, <span class="keywordtype">int</span>* p, PxVec3* g)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">int</span> bx0, bx1, by0, by1, bz0, bz1, b00, b10, b01, b11;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">float</span> rx0, rx1, ry0, ry1, rz0, rz1, sy, sz, a, b, c, d, t, u, v;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; PxVec3 q;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">int</span> i, j;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(0, point, t, bx0, bx1, rx0, rx1);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(1, point, t, by0, by1, ry0, ry1);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(2, point, t, bz0, bz1, rz0, rz1);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; i = p[bx0];</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; j = p[bx1];</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; b00 = p[i + by0];</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; b10 = p[j + by0];</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; b01 = p[i + by1];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; b11 = p[j + by1];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; t = <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(rx0);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; sy = <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(ry0);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; sz = <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(rz0);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; q = g[b00 + bz0]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry0, rz0, q);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; q = g[b10 + bz0]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry0, rz0, q);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; a = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; q = g[b01 + bz0]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry1, rz0, q);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; q = g[b11 + bz0]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry1, rz0, q);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; b = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; c = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(sy, a, b);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; q = g[b00 + bz1]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry0, rz1, q);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; q = g[b10 + bz1]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry0, rz1, q);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; a = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; q = g[b01 + bz1]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry1, rz1, q);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; q = g[b11 + bz1]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry1, rz1, q);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; b = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; d = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(sy, a, b);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(sz, c, d);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html"> 117</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html">PerlinNoise</a></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html#ab0d02c5cf13b1ee7440c685e1383e5f4"> 126</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html#ab0d02c5cf13b1ee7440c685e1383e5f4">PerlinNoise</a>(<a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* rnd, <span class="keywordtype">int</span> octaves = 1, <span class="keywordtype">float</span> frequency = 1., <span class="keywordtype">float</span> amplitude = 1.)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; : mRnd(rnd),</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; mOctaves(octaves),</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; mFrequency(frequency),</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; mAmplitude(amplitude),</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; mbInit(false)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Reset state of noise generator</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> \param[in] octaves Number of noise octaves</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> \param[in] frequency Frequency of noise</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> \param[in] amplitude Amplitude of noise</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html#af1e84d0a824753474d6508fa6603cafb"> 142</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html#af1e84d0a824753474d6508fa6603cafb">reset</a>(<span class="keywordtype">int</span> octaves = 1, <span class="keywordtype">float</span> frequency = 1.f, <span class="keywordtype">float</span> amplitude = 1.f)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; mOctaves = octaves;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; mFrequency = frequency;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; mAmplitude = amplitude;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; init();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html#ac4cfcb441356dbbb7217e92f561335e9"> 153</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html#ac4cfcb441356dbbb7217e92f561335e9">sample</a>(<span class="keyword">const</span> physx::PxVec3&amp; point)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> perlinNoise(point);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html">PerlinNoise</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html">PerlinNoise</a>&amp;);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">float</span> perlinNoise(physx::PxVec3 point)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (!mbInit)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; init();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> octaves = mOctaves;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> frequency = mFrequency;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">float</span> amplitude = mAmplitude;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">float</span> result = 0.0f;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; point *= frequency;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; octaves; ++i)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; PxVec3 lpnt;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; lpnt[0] = point.x;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; lpnt[1] = point.y;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; lpnt[2] = point.z;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; result += (<a class="code" href="namespace_nv_1_1_blast.html#a92d505a07c6038f564445af249ff5158">noiseSample</a>(lpnt, p, g)) * amplitude;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; point *= 2.0f;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; amplitude *= 0.5f;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; mbInit = <span class="keyword">true</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">unsigned</span> i, j;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">int</span> k;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; (unsigned)<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a>; i++)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; p[i] = (int)i;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; 3; ++j)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; g[i][j] = mRnd-&gt;<a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#abc19897d708ea7c691c1325b14eff198">getRandomValue</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; g[i].normalize();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">while</span> (--i)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; k = p[i];</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; j = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(mRnd-&gt;<a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#abc19897d708ea7c691c1325b14eff198">getRandomValue</a>() * <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; p[i] = p[j];</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; p[j] = k;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + 2; ++i)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; p[(unsigned)PERLIN_NOISE_SAMPLE_TABLE + i] = p[i];</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; 3; ++j)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; g[(<span class="keywordtype">unsigned</span>)PERLIN_NOISE_SAMPLE_TABLE + i][j] = g[i][j];</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* mRnd;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">int</span> mOctaves;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">float</span> mFrequency;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">float</span> mAmplitude;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// Permutation vector</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">int</span> p[(unsigned)(<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + 2)];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// Gradient vector</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; PxVec3 g[(unsigned)(<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + 2)];</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">bool</span> mbInit;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;};</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html"> 235</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int32_t mOctaves;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordtype">float</span> mAmplitude;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">float</span> mFrequency;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; int32_t mSeed;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> X_NOISE_GEN = 1619;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> Y_NOISE_GEN = 31337;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> Z_NOISE_GEN = 6971;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> W_NOISE_GEN = 1999;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> SEED_NOISE_GEN = 1013;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> SHIFT_NOISE_GEN = 8;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">int</span> fastfloor(<span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> (x &gt;= 0) ? (int)x : (<span class="keywordtype">int</span>)(x - 1);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a>&amp;)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html#a99d15601661901924a2470a0a002884f"> 267</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html#a99d15601661901924a2470a0a002884f">SimplexNoise</a>(<span class="keywordtype">float</span> ampl, <span class="keywordtype">float</span> freq, int32_t octaves, int32_t seed) : mOctaves(octaves), mAmplitude(ampl), mFrequency(freq), mSeed(seed) {};</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// 4D simplex noise</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">// returns: (x,y,z) = noise grad, w = noise value</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html#a4651bada29932a13dc3808ce94f22219"> 280</a></span>&#160; physx::PxVec4 <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html#a4651bada29932a13dc3808ce94f22219">eval4D</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>, <span class="keywordtype">int</span> seed)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// The skewing and unskewing factors are hairy again for the 4D case</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> F4 = (physx::PxSqrt(5.0f) - 1.0f) / 4.0f;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> G4 = (5.0f - physx::PxSqrt(5.0f)) / 20.0f;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// Skew the (x,y,z,w) space to determine which cell of 24 simplices we&#39;re in</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">float</span> s = (x + y + z + <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) * F4; <span class="comment">// Factor for 4D skewing</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordtype">int</span> ix = fastfloor(x + s);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordtype">int</span> iy = fastfloor(y + s);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">int</span> iz = fastfloor(z + s);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordtype">int</span> iw = fastfloor(w + s);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordtype">float</span> tu = (ix + iy + iz + iw) * G4; <span class="comment">// Factor for 4D unskewing</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// Unskew the cell origin back to (x,y,z,w) space</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordtype">float</span> x0 = x - (ix - tu); <span class="comment">// The x,y,z,w distances from the cell origin</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">float</span> y0 = y - (iy - tu);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">float</span> z0 = z - (iz - tu);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">float</span> w0 = w - (iw - tu);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">int</span> c = (x0 &gt; y0) ? (1 &lt;&lt; 0) : (1 &lt;&lt; 2);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; c += (x0 &gt; z0) ? (1 &lt;&lt; 0) : (1 &lt;&lt; 4);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; c += (x0 &gt; w0) ? (1 &lt;&lt; 0) : (1 &lt;&lt; 6);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; c += (y0 &gt; z0) ? (1 &lt;&lt; 2) : (1 &lt;&lt; 4);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; c += (y0 &gt; w0) ? (1 &lt;&lt; 2) : (1 &lt;&lt; 6);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; c += (z0 &gt; w0) ? (1 &lt;&lt; 4) : (1 &lt;&lt; 6);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; physx::PxVec4 res;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; res.setZero();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// Calculate the contribution from the five corners</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p = 4; p &gt;= 0; --p)</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordtype">int</span> ixp = ((c &gt;&gt; 0) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">int</span> iyp = ((c &gt;&gt; 2) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">int</span> izp = ((c &gt;&gt; 4) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordtype">int</span> iwp = ((c &gt;&gt; 6) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordtype">float</span> xp = x0 - ixp + (4 - p) * G4;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordtype">float</span> yp = y0 - iyp + (4 - p) * G4;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">float</span> zp = z0 - izp + (4 - p) * G4;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">float</span> wp = w0 - iwp + (4 - p) * G4;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">float</span> t = 0.6f - xp * xp - yp * yp - zp * zp - wp * wp;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (t &gt; 0)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">//get index</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordtype">int</span> gradIndex = int((</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; X_NOISE_GEN * (ix + ixp)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; + Y_NOISE_GEN * (iy + iyp)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; + Z_NOISE_GEN * (iz + izp)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; + W_NOISE_GEN * (iw + iwp)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; + SEED_NOISE_GEN * seed)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; &amp; 0xffffffff);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; gradIndex ^= (gradIndex &gt;&gt; SHIFT_NOISE_GEN);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; gradIndex &amp;= 31;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; physx::PxVec4 g;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> h = gradIndex;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> hs = 2 - (h &gt;&gt; 4);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> h1 = (h &gt;&gt; 3);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; g.x = (h1 == 0) ? 0.0f : ((h &amp; 4) ? -1.0f : 1.0f);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; g.y = (h1 == 1) ? 0.0f : ((h &amp; (hs &lt;&lt; 1)) ? -1.0f : 1.0f);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; g.z = (h1 == 2) ? 0.0f : ((h &amp; hs) ? -1.0f : 1.0f);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; g.w = (h1 == 3) ? 0.0f : ((h &amp; 1) ? -1.0f : 1.0f);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">float</span> gdot = (g.x * xp + g.y * yp + g.z * zp + g.w * wp);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordtype">float</span> t2 = t * t;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">float</span> t3 = t2 * t;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">float</span> t4 = t3 * t;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">float</span> dt4gdot = 8 * t3 * gdot;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; res.x += t4 * g.x - dt4gdot * xp;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; res.y += t4 * g.y - dt4gdot * yp;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; res.z += t4 * g.z - dt4gdot * zp;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; res.w += t4 * gdot;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// scale the result to cover the range [-1,1]</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; res *= 27;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html#a6dd8a1fbea3071eb3012cc342248b843"> 369</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html#a6dd8a1fbea3071eb3012cc342248b843">sample</a>(physx::PxVec3 p)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; p *= mFrequency;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordtype">float</span> result = 0.0f;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">float</span> alpha = 1;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span> (int32_t i = 1; i &lt;= mOctaves; ++i)</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; result += eval4D(p.x * i, p.y * i, p.z * i, i * 5.0f, mSeed).w * alpha;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; alpha *= 0.45;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> result * mAmplitude;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;};</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; } <span class="comment">// Blast namespace</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;} <span class="comment">// Nv namespace</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_simplex_noise_html_a99d15601661901924a2470a0a002884f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_simplex_noise.html#a99d15601661901924a2470a0a002884f">Nv::Blast::SimplexNoise::SimplexNoise</a></div><div class="ttdeci">SimplexNoise(float ampl, float freq, int32_t octaves, int32_t seed)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPerlinNoise.h:267</div></div>
+<a href="_nv_blast_ext_authoring_perlin_noise_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGPERLINNOISE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGPERLINNOISE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec4.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5"> 37</a></span>&#160;<span class="preprocessor">#define PERLIN_NOISE_SAMPLE_TABLE 512</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using</span> physx::PxVec3;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">/***********</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> Noise generation routines, copied from Apex. </span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67"> 49</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>&amp; rx, <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; ry, <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; rz, <span class="keyword">const</span> PxVec3 q)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> rx * q[0] + ry * q[1] + rz * q[2];</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab"> 54</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(<span class="keywordtype">float</span> t) { <span class="keywordflow">return</span> t * t * t * (t * (t * 6.0f - 15.0f) + 10.0f); }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c"> 56</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(<span class="keywordtype">float</span> t, <span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b) { <span class="keywordflow">return</span> a + t * (b - a); }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a"> 58</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(<span class="keywordtype">int</span> i, PxVec3 point, <span class="keywordtype">float</span>&amp; t, <span class="keywordtype">int</span>&amp; b0, <span class="keywordtype">int</span>&amp; b1, <span class="keywordtype">float</span>&amp; r0, <span class="keywordtype">float</span>&amp; r1)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; t = point[i] + (0x1000);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; b0 = ((int)t) &amp; (<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> - 1);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; b1 = (b0 + 1) &amp; (<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> - 1);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; r0 = t - (int)t;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; r1 = r0 - 1.0f;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a92d505a07c6038f564445af249ff5158"> 68</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast.html#a92d505a07c6038f564445af249ff5158">noiseSample</a>(PxVec3 point, <span class="keywordtype">int</span>* p, PxVec3* g)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">int</span> bx0, bx1, by0, by1, bz0, bz1, b00, b10, b01, b11;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">float</span> rx0, rx1, ry0, ry1, rz0, rz1, sy, sz, a, b, c, d, t, u, v;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; PxVec3 q;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">int</span> i, j;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(0, point, t, bx0, bx1, rx0, rx1);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(1, point, t, by0, by1, ry0, ry1);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ac13586ad5f58085610f3ae2feda2469a">setup</a>(2, point, t, bz0, bz1, rz0, rz1);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; i = p[bx0];</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; j = p[bx1];</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; b00 = p[i + by0];</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; b10 = p[j + by0];</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; b01 = p[i + by1];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; b11 = p[j + by1];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; t = <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(rx0);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; sy = <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(ry0);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; sz = <a class="code" href="namespace_nv_1_1_blast.html#ad4dfea75a2d880846c407692135b6dab">fade</a>(rz0);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; q = g[b00 + bz0]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry0, rz0, q);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; q = g[b10 + bz0]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry0, rz0, q);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; a = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; q = g[b01 + bz0]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry1, rz0, q);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; q = g[b11 + bz0]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry1, rz0, q);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; b = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; c = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(sy, a, b);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; q = g[b00 + bz1]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry0, rz1, q);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; q = g[b10 + bz1]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry0, rz1, q);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; a = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; q = g[b01 + bz1]; u = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx0, ry1, rz1, q);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; q = g[b11 + bz1]; v = <a class="code" href="namespace_nv_1_1_blast.html#a912cbb50647c139350162e1070c3dd67">at3</a>(rx1, ry1, rz1, q);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; b = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(t, u, v);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; d = <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(sy, a, b);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#ad41f8229622157366118b4942119641c">lerp</a>(sz, c, d);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html"> 117</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html">PerlinNoise</a></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html#ab0d02c5cf13b1ee7440c685e1383e5f4"> 126</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html#ab0d02c5cf13b1ee7440c685e1383e5f4">PerlinNoise</a>(<a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* rnd, <span class="keywordtype">int</span> octaves = 1, <span class="keywordtype">float</span> frequency = 1., <span class="keywordtype">float</span> amplitude = 1.)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; : mRnd(rnd),</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; mOctaves(octaves),</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; mFrequency(frequency),</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; mAmplitude(amplitude),</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; mbInit(false)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Reset state of noise generator</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> \param[in] octaves Number of noise octaves</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> \param[in] frequency Frequency of noise</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> \param[in] amplitude Amplitude of noise</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html#af1e84d0a824753474d6508fa6603cafb"> 142</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html#af1e84d0a824753474d6508fa6603cafb">reset</a>(<span class="keywordtype">int</span> octaves = 1, <span class="keywordtype">float</span> frequency = 1.f, <span class="keywordtype">float</span> amplitude = 1.f)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; mOctaves = octaves;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; mFrequency = frequency;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; mAmplitude = amplitude;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; init();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_perlin_noise.html#ac4cfcb441356dbbb7217e92f561335e9"> 153</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html#ac4cfcb441356dbbb7217e92f561335e9">sample</a>(<span class="keyword">const</span> physx::PxVec3&amp; point)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> perlinNoise(point);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html">PerlinNoise</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_perlin_noise.html">PerlinNoise</a>&amp;);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">float</span> perlinNoise(physx::PxVec3 point)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (!mbInit)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; init();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> octaves = mOctaves;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> frequency = mFrequency;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">float</span> amplitude = mAmplitude;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">float</span> result = 0.0f;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; point *= frequency;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; octaves; ++i)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; PxVec3 lpnt;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; lpnt[0] = point.x;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; lpnt[1] = point.y;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; lpnt[2] = point.z;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; result += (<a class="code" href="namespace_nv_1_1_blast.html#a92d505a07c6038f564445af249ff5158">noiseSample</a>(lpnt, p, g)) * amplitude;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; point *= 2.0f;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; amplitude *= 0.5f;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; mbInit = <span class="keyword">true</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">unsigned</span> i, j;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">int</span> k;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; (unsigned)<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a>; i++)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; p[i] = (int)i;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; 3; ++j)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; g[i][j] = mRnd-&gt;<a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#abc19897d708ea7c691c1325b14eff198">getRandomValue</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; g[i].normalize();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">while</span> (--i)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; k = p[i];</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; j = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(mRnd-&gt;<a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#abc19897d708ea7c691c1325b14eff198">getRandomValue</a>() * <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; p[i] = p[j];</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; p[j] = k;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + 2; ++i)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; p[(unsigned)PERLIN_NOISE_SAMPLE_TABLE + i] = p[i];</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; 3; ++j)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; g[(<span class="keywordtype">unsigned</span>)PERLIN_NOISE_SAMPLE_TABLE + i][j] = g[i][j];</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">Nv::Blast::RandomGeneratorBase</a>* mRnd;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">int</span> mOctaves;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">float</span> mFrequency;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">float</span> mAmplitude;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// Permutation vector</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">int</span> p[(unsigned)(<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + 2)];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// Gradient vector</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; PxVec3 g[(unsigned)(<a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + <a class="code" href="_nv_blast_ext_authoring_perlin_noise_8h.html#aa5c89172703d702a397d064f704953d5">PERLIN_NOISE_SAMPLE_TABLE</a> + 2)];</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">bool</span> mbInit;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;};</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html"> 235</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int32_t mOctaves;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordtype">float</span> mAmplitude;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">float</span> mFrequency;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; int32_t mSeed;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> X_NOISE_GEN = 1619;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> Y_NOISE_GEN = 31337;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> Z_NOISE_GEN = 6971;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> W_NOISE_GEN = 1999;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> SEED_NOISE_GEN = 1013;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> SHIFT_NOISE_GEN = 8;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">int</span> fastfloor(<span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> (x &gt;= 0) ? (int)x : (<span class="keywordtype">int</span>)(x - 1);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html">SimplexNoise</a>&amp;)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html#a99d15601661901924a2470a0a002884f"> 267</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html#a99d15601661901924a2470a0a002884f">SimplexNoise</a>(<span class="keywordtype">float</span> ampl, <span class="keywordtype">float</span> freq, int32_t octaves, int32_t seed) : mOctaves(octaves), mAmplitude(ampl), mFrequency(freq), mSeed(seed) {};</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// 4D simplex noise</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">// returns: (x,y,z) = noise grad, w = noise value</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html#a4651bada29932a13dc3808ce94f22219"> 280</a></span>&#160; physx::PxVec4 <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html#a4651bada29932a13dc3808ce94f22219">eval4D</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>, <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>, <span class="keywordtype">int</span> seed)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// The skewing and unskewing factors are hairy again for the 4D case</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> F4 = (physx::PxSqrt(5.0f) - 1.0f) / 4.0f;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> G4 = (5.0f - physx::PxSqrt(5.0f)) / 20.0f;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// Skew the (x,y,z,w) space to determine which cell of 24 simplices we&#39;re in</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">float</span> s = (x + y + z + <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) * F4; <span class="comment">// Factor for 4D skewing</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordtype">int</span> ix = fastfloor(x + s);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordtype">int</span> iy = fastfloor(y + s);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">int</span> iz = fastfloor(z + s);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordtype">int</span> iw = fastfloor(w + s);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordtype">float</span> tu = (ix + iy + iz + iw) * G4; <span class="comment">// Factor for 4D unskewing</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// Unskew the cell origin back to (x,y,z,w) space</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordtype">float</span> x0 = x - (ix - tu); <span class="comment">// The x,y,z,w distances from the cell origin</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">float</span> y0 = y - (iy - tu);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">float</span> z0 = z - (iz - tu);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">float</span> w0 = w - (iw - tu);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">int</span> c = (x0 &gt; y0) ? (1 &lt;&lt; 0) : (1 &lt;&lt; 2);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; c += (x0 &gt; z0) ? (1 &lt;&lt; 0) : (1 &lt;&lt; 4);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; c += (x0 &gt; w0) ? (1 &lt;&lt; 0) : (1 &lt;&lt; 6);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; c += (y0 &gt; z0) ? (1 &lt;&lt; 2) : (1 &lt;&lt; 4);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; c += (y0 &gt; w0) ? (1 &lt;&lt; 2) : (1 &lt;&lt; 6);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; c += (z0 &gt; w0) ? (1 &lt;&lt; 4) : (1 &lt;&lt; 6);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; physx::PxVec4 res;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; res.setZero();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// Calculate the contribution from the five corners</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> p = 4; p &gt;= 0; --p)</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordtype">int</span> ixp = ((c &gt;&gt; 0) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">int</span> iyp = ((c &gt;&gt; 2) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">int</span> izp = ((c &gt;&gt; 4) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordtype">int</span> iwp = ((c &gt;&gt; 6) &amp; 3) &gt;= p ? 1 : 0;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordtype">float</span> xp = x0 - ixp + (4 - p) * G4;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordtype">float</span> yp = y0 - iyp + (4 - p) * G4;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">float</span> zp = z0 - izp + (4 - p) * G4;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">float</span> wp = w0 - iwp + (4 - p) * G4;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">float</span> t = 0.6f - xp * xp - yp * yp - zp * zp - wp * wp;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (t &gt; 0)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">//get index</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordtype">int</span> gradIndex = int((</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; X_NOISE_GEN * (ix + ixp)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; + Y_NOISE_GEN * (iy + iyp)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; + Z_NOISE_GEN * (iz + izp)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; + W_NOISE_GEN * (iw + iwp)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; + SEED_NOISE_GEN * seed)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; &amp; 0xffffffff);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; gradIndex ^= (gradIndex &gt;&gt; SHIFT_NOISE_GEN);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; gradIndex &amp;= 31;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; physx::PxVec4 g;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> h = gradIndex;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> hs = 2 - (h &gt;&gt; 4);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> h1 = (h &gt;&gt; 3);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; g.x = (h1 == 0) ? 0.0f : ((h &amp; 4) ? -1.0f : 1.0f);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; g.y = (h1 == 1) ? 0.0f : ((h &amp; (hs &lt;&lt; 1)) ? -1.0f : 1.0f);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; g.z = (h1 == 2) ? 0.0f : ((h &amp; hs) ? -1.0f : 1.0f);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; g.w = (h1 == 3) ? 0.0f : ((h &amp; 1) ? -1.0f : 1.0f);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">float</span> gdot = (g.x * xp + g.y * yp + g.z * zp + g.w * wp);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordtype">float</span> t2 = t * t;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">float</span> t3 = t2 * t;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">float</span> t4 = t3 * t;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">float</span> dt4gdot = 8 * t3 * gdot;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; res.x += t4 * g.x - dt4gdot * xp;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; res.y += t4 * g.y - dt4gdot * yp;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; res.z += t4 * g.z - dt4gdot * zp;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; res.w += t4 * gdot;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// scale the result to cover the range [-1,1]</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; res *= 27;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_simplex_noise.html#a6dd8a1fbea3071eb3012cc342248b843"> 369</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_simplex_noise.html#a6dd8a1fbea3071eb3012cc342248b843">sample</a>(physx::PxVec3 p)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; p *= mFrequency;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordtype">float</span> result = 0.0f;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">float</span> alpha = 1;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span> (int32_t i = 1; i &lt;= mOctaves; ++i)</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; result += eval4D(p.x * i, p.y * i, p.z * i, i * 5.0f, mSeed).w * alpha;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; alpha *= 0.45;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> result * mAmplitude;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;};</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; } <span class="comment">// Blast namespace</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;} <span class="comment">// Nv namespace</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_simplex_noise_html_a99d15601661901924a2470a0a002884f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_simplex_noise.html#a99d15601661901924a2470a0a002884f">Nv::Blast::SimplexNoise::SimplexNoise</a></div><div class="ttdeci">SimplexNoise(float ampl, float freq, int32_t octaves, int32_t seed)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPerlinNoise.h:267</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_simplex_noise_html_a4651bada29932a13dc3808ce94f22219"><div class="ttname"><a href="class_nv_1_1_blast_1_1_simplex_noise.html#a4651bada29932a13dc3808ce94f22219">Nv::Blast::SimplexNoise::eval4D</a></div><div class="ttdeci">physx::PxVec4 eval4D(float x, float y, float z, float w, int seed)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPerlinNoise.h:280</div></div>
<div class="ttc" id="bt_vector3_8h_html_a9ac999fc46ed7720280dca03ad1e4e62"><div class="ttname"><a href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a></div><div class="ttdeci">SIMD_FORCE_INLINE const btScalar &amp; x() const</div><div class="ttdoc">Return the x value. </div><div class="ttdef"><b>Definition:</b> btVector3.h:275</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_simplex_noise_html_a6dd8a1fbea3071eb3012cc342248b843"><div class="ttname"><a href="class_nv_1_1_blast_1_1_simplex_noise.html#a6dd8a1fbea3071eb3012cc342248b843">Nv::Blast::SimplexNoise::sample</a></div><div class="ttdeci">float sample(physx::PxVec3 p)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringPerlinNoise.h:369</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html
index 19783dc..1c13846 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_triangulator_8
<div class="title">NvBlastExtAuthoringTriangulator.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_triangulator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGTRIANGULATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGTRIANGULATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html">NvBlastExtAuthoringInternalCommon.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_triangulator.html">Triangulator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#ab7cf6608fd71c417262feec54f3ccf75">triangulate</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a76e1c257449e53049c62984e1e95b44d"> 60</a></span>&#160; std::vector&lt;Triangle&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a76e1c257449e53049c62984e1e95b44d">getBaseMesh</a>()</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> mBaseMeshUVFittedTriangles;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#afb79de514677eec79c20e4d296736f0e"> 65</a></span>&#160; std::vector&lt;Triangle&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#afb79de514677eec79c20e4d296736f0e">getBaseMeshNotFitted</a>()</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> mBaseMeshResultTriangles;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#afa48ddb045fffaded4b1ad09302a34c7"> 74</a></span>&#160; std::vector&lt;TriangleIndexed&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#afa48ddb045fffaded4b1ad09302a34c7">getBaseMeshIndexed</a>()</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> mBaseMeshTriangles;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a2138ec663adee80577dae6cc275b7ece"> 81</a></span>&#160; std::vector&lt;uint32_t&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a2138ec663adee80577dae6cc275b7ece">getBaseMapping</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> mBaseMapping;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a7de0951574f73e310626823228c0f005"> 88</a></span>&#160; std::vector&lt;int32_t&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a7de0951574f73e310626823228c0f005">getPositionedMapping</a>()</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> mPositionMappedVrt;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#ad99ae2011c5aee476fffd79ff9ac4672"> 95</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#ad99ae2011c5aee476fffd79ff9ac4672">getWeldedVerticesCount</a>()</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(mVertices.size());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#aa76275caaab7c2212cca640722d91ca6">reset</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a109f341cad221c76f8eecbdd641b566e"> 105</a></span>&#160; int32_t&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a109f341cad221c76f8eecbdd641b566e">getParentChunkId</a>() { <span class="keywordflow">return</span> parentChunkId; };</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; int32_t parentChunkId;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; int32_t addVerticeIfNotExist(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; p);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">void</span> addEdgeIfValid(<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; ed);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">/* Data used before triangulation to build polygon loops*/</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::vector&lt;Vertex&gt; mVertices;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::vector&lt;EdgeWithParent&gt; mBaseMeshEdges;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::map&lt;Vertex, int32_t, VrtComp&gt; mVertMap;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::map&lt;EdgeWithParent, int32_t, EdgeComparator&gt; mEdgeMap;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; std::vector&lt;uint32_t&gt; mBaseMapping;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; std::vector&lt;int32_t&gt; mPositionMappedVrt;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">/* ------------------------------------------------------------ */</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> prepare(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> triangulatePolygonWithEarClipping(std::vector&lt;uint32_t&gt;&amp; inputPolygon, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vert, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> buildPolygonAndTriangulate(std::vector&lt;Edge&gt;&amp; edges, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, int32_t userData, int32_t materialId, int32_t smoothingGroup);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">void</span> computePositionedMapping();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; std::vector&lt;TriangleIndexed&gt; mBaseMeshTriangles; </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::vector&lt;Triangle&gt; mBaseMeshResultTriangles;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; std::vector&lt;Triangle&gt; mBaseMeshUVFittedTriangles;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGTRIANGULATOR_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a2dbf0cc037620db35223513e817444f7"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">Nv::Blast::ProjectionDirections</a></div><div class="ttdeci">ProjectionDirections</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:93</div></div>
+<a href="_nv_blast_ext_authoring_triangulator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGTRIANGULATOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGTRIANGULATOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_internal_common_8h.html">NvBlastExtAuthoringInternalCommon.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_triangulator.html">Triangulator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#ab7cf6608fd71c417262feec54f3ccf75">triangulate</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a76e1c257449e53049c62984e1e95b44d"> 60</a></span>&#160; std::vector&lt;Triangle&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a76e1c257449e53049c62984e1e95b44d">getBaseMesh</a>()</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> mBaseMeshUVFittedTriangles;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#afb79de514677eec79c20e4d296736f0e"> 65</a></span>&#160; std::vector&lt;Triangle&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#afb79de514677eec79c20e4d296736f0e">getBaseMeshNotFitted</a>()</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> mBaseMeshResultTriangles;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#afa48ddb045fffaded4b1ad09302a34c7"> 74</a></span>&#160; std::vector&lt;TriangleIndexed&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#afa48ddb045fffaded4b1ad09302a34c7">getBaseMeshIndexed</a>()</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> mBaseMeshTriangles;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a2138ec663adee80577dae6cc275b7ece"> 81</a></span>&#160; std::vector&lt;uint32_t&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a2138ec663adee80577dae6cc275b7ece">getBaseMapping</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> mBaseMapping;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a7de0951574f73e310626823228c0f005"> 88</a></span>&#160; std::vector&lt;int32_t&gt;&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a7de0951574f73e310626823228c0f005">getPositionedMapping</a>()</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> mPositionMappedVrt;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#ad99ae2011c5aee476fffd79ff9ac4672"> 95</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#ad99ae2011c5aee476fffd79ff9ac4672">getWeldedVerticesCount</a>()</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(mVertices.size());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#aa76275caaab7c2212cca640722d91ca6">reset</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangulator.html#a109f341cad221c76f8eecbdd641b566e"> 105</a></span>&#160; int32_t&amp; <a class="code" href="class_nv_1_1_blast_1_1_triangulator.html#a109f341cad221c76f8eecbdd641b566e">getParentChunkId</a>() { <span class="keywordflow">return</span> parentChunkId; };</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; int32_t parentChunkId;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; int32_t addVerticeIfNotExist(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; p);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">void</span> addEdgeIfValid(<a class="code" href="struct_nv_1_1_blast_1_1_edge_with_parent.html">EdgeWithParent</a>&amp; ed);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">/* Data used before triangulation to build polygon loops*/</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::vector&lt;Vertex&gt; mVertices;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::vector&lt;EdgeWithParent&gt; mBaseMeshEdges;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::map&lt;Vertex, int32_t, VrtComp&gt; mVertMap;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::map&lt;EdgeWithParent, int32_t, EdgeComparator&gt; mEdgeMap;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; std::vector&lt;uint32_t&gt; mBaseMapping;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; std::vector&lt;int32_t&gt; mPositionMappedVrt;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">/* ------------------------------------------------------------ */</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> prepare(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> triangulatePolygonWithEarClipping(std::vector&lt;uint32_t&gt;&amp; inputPolygon, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vert, <a class="code" href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">ProjectionDirections</a> dir);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> buildPolygonAndTriangulate(std::vector&lt;Edge&gt;&amp; edges, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices, int32_t userData, int32_t materialId, int32_t smoothingGroup);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">void</span> computePositionedMapping();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; std::vector&lt;TriangleIndexed&gt; mBaseMeshTriangles; </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; std::vector&lt;Triangle&gt; mBaseMeshResultTriangles;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; std::vector&lt;Triangle&gt; mBaseMeshUVFittedTriangles;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGTRIANGULATOR_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a2dbf0cc037620db35223513e817444f7"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a2dbf0cc037620db35223513e817444f7">Nv::Blast::ProjectionDirections</a></div><div class="ttdeci">ProjectionDirections</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:93</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_triangulator_html_a7de0951574f73e310626823228c0f005"><div class="ttname"><a href="class_nv_1_1_blast_1_1_triangulator.html#a7de0951574f73e310626823228c0f005">Nv::Blast::Triangulator::getPositionedMapping</a></div><div class="ttdeci">std::vector&lt; int32_t &gt; &amp; getPositionedMapping()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTriangulator.h:88</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_triangulator_html_afb79de514677eec79c20e4d296736f0e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_triangulator.html#afb79de514677eec79c20e4d296736f0e">Nv::Blast::Triangulator::getBaseMeshNotFitted</a></div><div class="ttdeci">std::vector&lt; Triangle &gt; &amp; getBaseMeshNotFitted()</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTriangulator.h:65</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_with_parent_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge_with_parent.html">Nv::Blast::EdgeWithParent</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringInternalCommon.h:48</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_types_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_types_8h_source.html
index aa3181e..412d152 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_types_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_types_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_types_8h_sourc
<div class="title">NvBlastExtAuthoringTypes.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138"> 42</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a> = 1000;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4"> 47</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4">kSmoothingGroupInteriorId</a> = 1000;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea"> 52</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea">kNotValidVertexIndex</a> = <a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html"> 57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032">Edge</a>(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> = kNotValidVertexIndex, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a> = kNotValidVertexIndex) : <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>), <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>) {}</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html"> 67</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09">Vertex</a>() {};</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654">Vertex</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; n, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; _uv) : p(p), n(n) { uv[0] = _uv; }</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18"> 71</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>; <span class="comment">// Position</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4"> 72</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>; <span class="comment">// Normal</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa"> 73</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> uv[1]; <span class="comment">// UV-coordinates array, currently supported only one UV coordinate.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c"> 81</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c">Triangle</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9"> 82</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9">Triangle</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; c, int32_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; : a(a), b(b), c(c), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a> a, b, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def">c</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175"> 85</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175">userData</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3"> 86</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3">materialId</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199"> 87</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199">smoothingGroup</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;};</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html">TriangleIndexed</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185">TriangleIndexed</a>(uint32_t ea, uint32_t eb, uint32_t ec, int32_t mid = 0, int32_t sid = 0, int32_t ud = 0)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; : ea(ea), eb(eb), ec(ec), materialId(mid), smoothingGroup(sid), userData(ud) {}</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116"> 97</a></span>&#160; uint32_t ea, eb, <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116">ec</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a"> 98</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a">materialId</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104"> 99</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104">smoothingGroup</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69"> 100</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69">userData</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html"> 106</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4"> 108</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4">Facet</a>(int32_t fen = 0, uint32_t ec = 0, int64_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; : firstEdgeNumber(fen), edgesCount(ec), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b"> 110</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b">firstEdgeNumber</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94"> 111</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94">edgesCount</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef"> 112</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef">userData</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61"> 113</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61">materialId</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c"> 114</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c">smoothingGroup</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html"> 120</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Polygon base plane</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab97c5352a6a9264703ae02c59dd3bb0f"> 123</a></span>&#160; <span class="keywordtype">float</span> plane[4];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Number vertices in polygon</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2"> 125</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// First index in CollisionHull.indices array for this polygon</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5"> 127</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">indicesCount</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4">polygonDataCount</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b"> 138</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1"> 139</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da">polygonData</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1"> 150</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1">chunkCount</a>; <span class="comment">// Number of chunks in Blast asset</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51"> 152</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51">bondCount</a>; <span class="comment">// Number of bonds in Blast asset</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b"> 154</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b">asset</a>; <span class="comment">// Blast asset</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4"> 160</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4">assetToFractureChunkIdMap</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe"> 167</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe">geometryOffset</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1"> 169</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1">geometry</a>; <span class="comment">// Raw array of Triangle for all chunks</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f"> 171</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f">chunkDescs</a>; <span class="comment">// Array of chunk descriptors. Contains chunkCount elements</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be"> 173</a></span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be">bondDescs</a>; <span class="comment">// Array of bond descriptors. Contains bondCount elements</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677"> 180</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677">collisionHullOffset</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e"> 182</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e">collisionHull</a>; <span class="comment">// Raw array of pointers to collision hull for all chunks.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa"> 187</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa">materialNames</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956"> 192</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956">materialCount</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;};</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html"> 195</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">ConvexDecompositionParams</a></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a14193f570e7283bb6896f1174f48a10b"> 197</a></span>&#160; uint32_t maximumNumberOfHulls = 8; <span class="comment">// Maximum number of convex hull generated for one chunk. If equal to 1 convex</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// decomposition is disabled.</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a91f651c59c7c3b6082de11909eaddfb1"> 199</a></span>&#160; uint32_t maximumNumberOfVerticesPerHull = 64; <span class="comment">// Controls the maximum number of triangles per convex-hull</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// (default=64, range=4-1024)</span></div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ad1cedec2b083ef11141bd54fda1a82ae"> 201</a></span>&#160; uint32_t voxelGridResolution = 1000000; <span class="comment">// Voxel grid resolution used for chunk convex decomposition</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// (default=1,000,000, range=10,000-16,000,000).</span></div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ae66625f452b5578381a72f82f442c772"> 203</a></span>&#160; <span class="keywordtype">float</span> concavity = 0.0025f; <span class="comment">// Value between 0 and 1, controls how accurate hull generation is</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html_a8fc10101ef8bf4b6727a327b39618245"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">Nv::Blast::CollisionHull::indicesCount</a></div><div class="ttdeci">uint32_t indicesCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:136</div></div>
+<a href="_nv_blast_ext_authoring_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138"> 42</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a> = 1000;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4"> 47</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#adbf9e9203bf8bee845964d16b181bec4">kSmoothingGroupInteriorId</a> = 1000;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea"> 52</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#aef4edf41a556a4a3a47621a9335b10ea">kNotValidVertexIndex</a> = <a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html"> 57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_edge.html">Edge</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a7fafd36df1acbc8e6c11f1b30ab33032">Edge</a>(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a> = kNotValidVertexIndex, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a> = kNotValidVertexIndex) : <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>), <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>(<a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>) {}</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#a3638e37be242b0af2deb14b09cbf8cc7">s</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">e</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html"> 67</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09">Vertex</a>() {};</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a644981057aa108d5b980a27345a1c654">Vertex</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; n, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; _uv) : p(p), n(n) { uv[0] = _uv; }</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18"> 71</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18">p</a>; <span class="comment">// Position</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4"> 72</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html#a7278be7edf4ff59599aaf7e2413fb7b4">n</a>; <span class="comment">// Normal</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_vertex.html#a289a9b0904000c3eb54a672d6ca1eefa"> 73</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> uv[1]; <span class="comment">// UV-coordinates array, currently supported only one UV coordinate.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c"> 81</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ae1a81abd0388b1c098b95b442b72650c">Triangle</a>() {};</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9"> 82</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a4e0b8bc91733c5fb2fea77c8030367e9">Triangle</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; b, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; c, int32_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; : a(a), b(b), c(c), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a> a, b, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#acbec7104b98f9ab000d22e910d3b9def">c</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175"> 85</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#a7161aa4637570593093cac005c843175">userData</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3"> 86</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#adf3a66bdd94f5cd516a4a5b15d23b6b3">materialId</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199"> 87</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html#ab832c1b248d12e5d6d292a10be2fe199">smoothingGroup</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;};</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html">TriangleIndexed</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a13e1a4dfce080ec72bb928f463bd0185">TriangleIndexed</a>(uint32_t ea, uint32_t eb, uint32_t ec, int32_t mid = 0, int32_t sid = 0, int32_t ud = 0)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; : ea(ea), eb(eb), ec(ec), materialId(mid), smoothingGroup(sid), userData(ud) {}</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116"> 97</a></span>&#160; uint32_t ea, eb, <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a6a3ccd2a6daec7b15916e4c83c97d116">ec</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a"> 98</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#a2e593b5effb784c464672c949efcb08a">materialId</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104"> 99</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#ad3aebc12ff4423d9c7dcaaadf77e7104">smoothingGroup</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69"> 100</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_triangle_indexed.html#aa6a1711ab535f45d870c194a8e346a69">userData</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html"> 106</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet.html">Facet</a></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4"> 108</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#aecc6bf47e404ec07cf35a76142ce32b4">Facet</a>(int32_t fen = 0, uint32_t ec = 0, int64_t ud = 0, int32_t mid = 0, int32_t sid = 0) </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; : firstEdgeNumber(fen), edgesCount(ec), userData(ud), materialId(mid), smoothingGroup(sid) {}</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b"> 110</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#abfdb6136b83a8e77799a7d6c57a89f3b">firstEdgeNumber</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94"> 111</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#acff8a5cd0bdb20eb2209359a68849e94">edgesCount</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef"> 112</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab4e7150dc9148b85ee95282927f1e6ef">userData</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61"> 113</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#a85004b9d37b2b0cadb3143f295c3ae61">materialId</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c"> 114</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet.html#ab41a791ee0ddb9c5cb823d43c4baa19c">smoothingGroup</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html"> 120</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Polygon base plane</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab97c5352a6a9264703ae02c59dd3bb0f"> 123</a></span>&#160; <span class="keywordtype">float</span> plane[4];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Number vertices in polygon</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2"> 125</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#a31722ac1b5642eba8d7fa1150c7884a2">vertexCount</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// First index in CollisionHull.indices array for this polygon</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5"> 127</a></span>&#160; uint16_t <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html#ab40d5c6b8035902d3c6eac9e3490cbc5">indexBase</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html"> 133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#afb9504c50ea19b6412a16682fe344ce9">pointsCount</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">indicesCount</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3b638daebe2dabacfabea4c5554920e4">polygonDataCount</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b"> 138</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a7abf6f1a2a7e3d4cad4b25ddff36e57b">points</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1"> 139</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1">indices</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">HullPolygon</a>* <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da">polygonData</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1"> 150</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8c4a5df959fb4157266fcbb05b5d6d1">chunkCount</a>; <span class="comment">// Number of chunks in Blast asset</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51"> 152</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ac5a938f6b6af22185f93d457947f0c51">bondCount</a>; <span class="comment">// Number of bonds in Blast asset</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b"> 154</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a82eea5edda9545d420939ef6a79aea7b">asset</a>; <span class="comment">// Blast asset</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4"> 160</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a94609b5ad4dabb8c32f858c531b81ed4">assetToFractureChunkIdMap</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe"> 167</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#ab4524dfe44c0b64ad394d69bc1b2fcbe">geometryOffset</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1"> 169</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a5b8bf3f47f519fedd08edf9899a88eb1">geometry</a>; <span class="comment">// Raw array of Triangle for all chunks</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f"> 171</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#aa8e251369789960fe04fcb478c88b97f">chunkDescs</a>; <span class="comment">// Array of chunk descriptors. Contains chunkCount elements</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be"> 173</a></span>&#160; <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be">bondDescs</a>; <span class="comment">// Array of bond descriptors. Contains bondCount elements</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677"> 180</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a2bf37965c30735bcd089e20f509ad677">collisionHullOffset</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e"> 182</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a3898ac65d9802560c7e6a2e41b3f661e">collisionHull</a>; <span class="comment">// Raw array of pointers to collision hull for all chunks.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa"> 187</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a79fb8d5fc554926ab27ccf16b4f3baaa">materialNames</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956"> 192</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html#a03cfe2eeeb05de8d8257f1de9befb956">materialCount</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;};</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html"> 195</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html">ConvexDecompositionParams</a></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a14193f570e7283bb6896f1174f48a10b"> 197</a></span>&#160; uint32_t maximumNumberOfHulls = 8; <span class="comment">// Maximum number of convex hull generated for one chunk. If equal to 1 convex</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// decomposition is disabled.</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#a91f651c59c7c3b6082de11909eaddfb1"> 199</a></span>&#160; uint32_t maximumNumberOfVerticesPerHull = 64; <span class="comment">// Controls the maximum number of triangles per convex-hull</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// (default=64, range=4-1024)</span></div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ad1cedec2b083ef11141bd54fda1a82ae"> 201</a></span>&#160; uint32_t voxelGridResolution = 1000000; <span class="comment">// Voxel grid resolution used for chunk convex decomposition</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// (default=1,000,000, range=10,000-16,000,000).</span></div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_convex_decomposition_params.html#ae66625f452b5578381a72f82f442c772"> 203</a></span>&#160; <span class="keywordtype">float</span> concavity = 0.0025f; <span class="comment">// Value between 0 and 1, controls how accurate hull generation is</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGTYPES_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html_a8fc10101ef8bf4b6727a327b39618245"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html#a8fc10101ef8bf4b6727a327b39618245">Nv::Blast::CollisionHull::indicesCount</a></div><div class="ttdeci">uint32_t indicesCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:136</div></div>
<div class="ttc" id="_nv_blast_preprocessor_internal_8h_html_ab5eb23180f7cc12b7d6c04a8ec067fdd"><div class="ttname"><a href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a></div><div class="ttdeci">#define UINT32_MAX</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessorInternal.h:68</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_edge_html_ae06c88ae71857d247fd27130265f5e25"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_edge.html#ae06c88ae71857d247fd27130265f5e25">Nv::Blast::Edge::e</a></div><div class="ttdeci">uint32_t e</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:61</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_authoring_result_html_a7a4780c1ce983189255f072042b457be"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_authoring_result.html#a7a4780c1ce983189255f072042b457be">Nv::Blast::AuthoringResult::bondDescs</a></div><div class="ttdeci">NvBlastBondDesc * bondDescs</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:173</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_v_s_a_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_v_s_a_8h_source.html
index f8da78e..a29eb1a 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_v_s_a_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_v_s_a_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_v_s_a_8h_sourc
<div class="title">NvBlastExtAuthoringVSA.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_authoring_v_s_a_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGVSA_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGVSA_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> This code copied from APEX GSA</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html"> 41</a></span>&#160;<span class="keyword">namespace </span>VSA</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6"> 43</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6">real</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html">VS3D_Halfspace_Set</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> real <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html#a3a38d067e70fffca879b6d7139952652">farthest_halfspace</a>(real plane[4], <span class="keyword">const</span> real point[4]) = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// Simple types and operations for internal calculations</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098"> 52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> { real <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>; }; <span class="comment">// 3-vector </span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2"> 53</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(real <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, real <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, real <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) { <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> r; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> = <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> = <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> = <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>; <span class="keywordflow">return</span> r; } <span class="comment">// vector builder</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad2ed66762db3fe1f41d35fa6b46df1ee"> 54</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad2ed66762db3fe1f41d35fa6b46df1ee">operator + </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> + b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> + b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> + b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>); } <span class="comment">// vector addition</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a207654189a89fba3d6256779afcd41d1"> 55</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a207654189a89fba3d6256779afcd41d1">operator * </a>(real s, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; v) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(s*v.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, s*v.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, s*v.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>); } <span class="comment">// scalar multiplication</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad74b41a40540aa0ea4de7600bac6f552"> 56</a></span>&#160;<span class="keyword">inline</span> real <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad74b41a40540aa0ea4de7600bac6f552">operator | </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b) { <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> + a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> + a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>; } <span class="comment">// dot product</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a38ae2e49308ac2b5c9285edaf237c976"> 57</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a38ae2e49308ac2b5c9285edaf237c976">operator ^ </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> - b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> - b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> - b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>); } <span class="comment">// cross product</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c"> 59</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> { <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> v; real <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>; }; <span class="comment">// 4-vector split into 3-vector and scalar parts</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82"> 60</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; v, real <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) { <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> r; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> = v; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a> = <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>; <span class="keywordflow">return</span> r; } <span class="comment">// vector builder</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a87683b078798507378729b21dd4aa0da"> 61</a></span>&#160;<span class="keyword">inline</span> real <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad74b41a40540aa0ea4de7600bac6f552">operator | </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; b) { <span class="keywordflow">return</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> | b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>) + a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>; } <span class="comment">// dot product</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// More accurate perpendicular</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581"> 64</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> c = a^b; <span class="comment">// Cross-product gives perpendicular</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#if VS3D_HIGH_ACCURACY || REAL_DOUBLE</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> real c2 = c | c;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span> (c2 != 0) c = c + (1 / c2)*((a | c)*(c^b) + (b | c)*(a^c)); <span class="comment">// Improvement to (a b)^T(c) = (0)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> c;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// Square</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e"> 75</a></span>&#160;<span class="keyword">inline</span> real <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(real <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) { <span class="keywordflow">return</span> x*<a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// Returns index of the extremal element in a three-element set {e0, e1, e2} based upon comparisons c_ij. The extremal index m is such that c_mn is true, or e_m == e_n, for all n.</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880"> 78</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>(<span class="keywordtype">int</span> c_10, <span class="keywordtype">int</span> c_21, <span class="keywordtype">int</span> c_20) { <span class="keywordflow">return</span> c_10 &lt;&lt; c_21 | (c_21&amp;c_20) &lt;&lt; 1; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// Returns index (0, 1, or 2) of minimum argument</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac40d9e7d67ea46fd503fc1001174256c"> 81</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac40d9e7d67ea46fd503fc1001174256c">index_of_min</a>(real x0, real x1, real x2) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>((<span class="keywordtype">int</span>)(x1 &lt; x0), (<span class="keywordtype">int</span>)(x2 &lt; x1), (<span class="keywordtype">int</span>)(x2 &lt; x0)); }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// Compare fractions with positive deominators. Returns a_num*sqrt(a_rden2) &gt; b_num*sqrt(b_rden2)</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d"> 84</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(real a_num, real a_rden2, real b_num, real b_rden2)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> a_num_neg = a_num &lt; 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> b_num_neg = b_num &lt; 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> a_num_neg != b_num_neg ? b_num_neg : ((a_num*a_num*a_rden2 &gt; b_num*b_num*b_rden2) != a_num_neg);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// Returns index (0, 1, or 2) of maximum fraction with positive deominators</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#aa4cd5beecd9202dfd1b9440aca332ae9"> 92</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#aa4cd5beecd9202dfd1b9440aca332ae9">index_of_max_frac</a>(real x0_num, real x0_rden2, real x1_num, real x1_rden2, real x2_num, real x2_rden2)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>((<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(x1_num, x1_rden2, x0_num, x0_rden2), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(x2_num, x2_rden2, x1_num, x1_rden2), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(x2_num, x2_rden2, x0_num, x0_rden2));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// Compare values given their signs and squares. Returns a &gt; b. a2 and b2 may have any constant offset applied to them.</span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15"> 98</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(real sgn_a, real a2, real sgn_b, real b2) { <span class="keywordflow">return</span> sgn_a*sgn_b &lt; 0 ? (sgn_b &lt; 0) : ((a2 &gt; b2) != (sgn_a &lt; 0)); }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// Returns index (0, 1, or 2) of maximum value given their signs and squares. sq_x0, sq_x1, and sq_x2 may have any constant offset applied to them.</span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad99de32f12e7fcd534d856e7c7daf094"> 101</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad99de32f12e7fcd534d856e7c7daf094">index_of_max_sgn_sq</a>(real sgn_x0, real sq_x0, real sgn_x1, real sq_x1, real sgn_x2, real sq_x2)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>((<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(sgn_x1, sq_x1, sgn_x0, sq_x0), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(sgn_x2, sq_x2, sgn_x1, sq_x1), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(sgn_x2, sq_x2, sgn_x0, sq_x0));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// Project 2D (homogeneous) vector onto 2D half-space boundary</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e"> 107</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; r, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; plane, real delta, real recip_n2, real eps2)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; r = r + (-delta*recip_n2)*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, 0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; r = r + (-(r | plane)*recip_n2)*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, 0); <span class="comment">// Second projection for increased accuracy</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> ((r | r) &gt; eps2) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; r = (-plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*recip_n2)*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, 0);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> = 1;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// Update function for vs3d_test</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> vs3d_update(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; p, <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> S[4], <span class="keywordtype">int</span>&amp; plane_count, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; q, real eps2)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// h plane is the last plane</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; h = S[plane_count - 1];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Handle plane_count == 1 specially (optimization; this could be commented out)</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (plane_count == 1)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Solution is objective projected onto h plane</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; p = q;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> = p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> + -(p | h)*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; if ((p | p) &lt;= eps2) p = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(-h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, 1); <span class="comment">// If p == 0 then q is a direction vector, any point in h is a support point</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// Create basis in the h plane</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_i = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac40d9e7d67ea46fd503fc1001174256c">index_of_min</a>(h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a> = h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>^<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>((real)(min_i == 0), (real)(min_i == 1), (real)(min_i == 2));</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a> = y^h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Use reduced vector r instead of p</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> r = { x | q.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, y | q.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, q.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*(y | <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) }; <span class="comment">// (x|x) = (y|y) = square of plane basis scale</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// If r == 0 (within epsilon), then it is a direction vector, and we have a bounded solution</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> ((r | r) &lt;= eps2) r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> = 1;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Create plane equations in the h plane. These will not be normalized in general.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">int</span> N = 0; <span class="comment">// Plane count in h subspace</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> R[3]; <span class="comment">// Planes in h subspace</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; real recip_n2[3]; <span class="comment">// Plane normal vector reciprocal lengths squared</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; real delta[3]; <span class="comment">// Signed distance of objective to the planes</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">int</span> index[3]; <span class="comment">// Keep track of original plane indices</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; for (<span class="keywordtype">int</span> i = 0; i &lt; plane_count - 1; ++i)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; vi = S[i].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">const</span> real cos_theta = h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> | vi;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; R[N] = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(x | vi, y | vi, S[i].<a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a> - h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*cos_theta);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; index[N] = i;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> real n2 = R[N].x*R[N].x + R[N].y*R[N].y;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (n2 &gt;= eps2)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> real lin_norm = (<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6">real</a>)1.5 - (real)0.5*n2; <span class="comment">// 1st-order approximation to 1/sqrt(n2) expanded about n2 = 1</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; R[N] = lin_norm*R[N]; <span class="comment">// We don&#39;t need normalized plane equations, but rescaling (even with an approximate normalization) gives better numerical behavior</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; recip_n2[N] = 1 / (R[N].x*R[N].x + R[N].y*R[N].y);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; delta[N] = r | R[N];</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; ++N; <span class="comment">// Keep this plane</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cos_theta &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Parallel cases are redundant and rejected, anti-parallel cases are 1D voids</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// Now work with the N-sized R array of half-spaces in the h plane</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">switch</span> (N)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> 1: one_plane :</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (delta[0] &lt; 0) N = 0; <span class="comment">// S[0] is redundant, eliminate it</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(r, R[0], delta[0], recip_n2[0], eps2);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> 2: two_planes :</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (delta[0] &lt; 0 &amp;&amp; delta[1] &lt; 0) N = 0; <span class="comment">// S[0] and S[1] are redundant, eliminate them</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_d_index = (int)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(delta[1], recip_n2[1], delta[0], recip_n2[0]);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(r, R[max_d_index], delta[max_d_index], recip_n2[max_d_index], eps2);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_d_index = max_d_index ^ 1;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> real new_delta_min = r | R[min_d_index];</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (new_delta_min &lt; 0)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; index[0] = index[max_d_index];</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; N = 1; <span class="comment">// S[min_d_index] is redundant, eliminate it</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// Set r to the intersection of R[0] and R[1] and keep both</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; r = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(R[0], R[1]);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*recip_n2[0] * recip_n2[1] &lt; eps2)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (R[0].x*R[1].x + R[0].y*R[1].y &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// 2D void found</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">goto</span> one_plane;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; r = (1 / r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>)*r; <span class="comment">// We could just as well multiply r by sgn(r.z); we just need to ensure r.z &gt; 0</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (delta[0] &lt; 0 &amp;&amp; delta[1] &lt; 0 &amp;&amp; delta[2] &lt; 0) N = 0; <span class="comment">// S[0], S[1], and S[2] are redundant, eliminate them</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> row_x = { R[0].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, R[1].x, R[2].x };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> row_y = { R[0].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, R[1].y, R[2].y };</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> row_w = { R[0].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>, R[1].z, R[2].z };</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> cof_w = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(row_x, row_y);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> detR_pos = (row_w | cof_w) &gt; 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> nrw_sgn0 = cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*recip_n2[1] * recip_n2[2] &lt; eps2 ? 0 : (((int)((cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> &gt; 0) == detR_pos) &lt;&lt; 1) - 1);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> nrw_sgn1 = cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*recip_n2[2] * recip_n2[0] &lt; eps2 ? 0 : (((int)((cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> &gt; 0) == detR_pos) &lt;&lt; 1) - 1);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> nrw_sgn2 = cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*recip_n2[0] * recip_n2[1] &lt; eps2 ? 0 : (((int)((cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> &gt; 0) == detR_pos) &lt;&lt; 1) - 1);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> ((nrw_sgn0 | nrw_sgn1 | nrw_sgn2) &gt;= 0) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// 3D void found</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> positive_width_count = ((nrw_sgn0 &gt;&gt; 1) &amp; 1) + ((nrw_sgn1 &gt;&gt; 1) &amp; 1) + ((nrw_sgn2 &gt;&gt; 1) &amp; 1);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (positive_width_count == 1)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">// A single positive width results from a redundant plane. Eliminate it and peform N = 2 calculation.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> pos_width_index = ((nrw_sgn1 &gt;&gt; 1) &amp; 1) | (nrw_sgn2 &amp; 2); <span class="comment">// Calculates which index corresponds to the positive-width side</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; R[pos_width_index] = R[2];</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; recip_n2[pos_width_index] = recip_n2[2];</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; delta[pos_width_index] = delta[2];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; index[pos_width_index] = index[2];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; N = 2;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">goto</span> two_planes;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// Find the max dot product of r and R[i]/|R_normal[i]|. For numerical accuracy when the angle between r and the i^{th} plane normal is small, we take some care below:</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_d_index = r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> != 0</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; ? <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#aa4cd5beecd9202dfd1b9440aca332ae9">index_of_max_frac</a>(delta[0], recip_n2[0], delta[1], recip_n2[1], delta[2], recip_n2[2]) <span class="comment">// displacement term resolves small-angle ambiguity, just use dot product</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; : <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad99de32f12e7fcd534d856e7c7daf094">index_of_max_sgn_sq</a>(delta[0], -<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*R[0].y - r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*R[0].x)*recip_n2[0], delta[1], -<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*R[1].y - r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*R[1].x)*recip_n2[1], delta[2], -<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*R[2].y - r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*R[2].x)*recip_n2[2]); <span class="comment">// No displacement term. Use wedge product to find the sine of the angle.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Project r onto max-d plane</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(r, R[max_d_index], delta[max_d_index], recip_n2[max_d_index], eps2);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; N = 1; <span class="comment">// Unless we use a vertex in the loop below</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> index_max = index[max_d_index];</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// The number of finite widths should be &gt;= 2. If not, it should be 0, but in any case it implies three parallel lines in the plane, which we should not have here.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// If we do have three parallel lines (# of finite widths &lt; 2), we&#39;ve picked the line corresponding to the half-plane farthest from r, which is correct.</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> finite_width_count = (nrw_sgn0 &amp; 1) + (nrw_sgn1 &amp; 1) + (nrw_sgn2 &amp; 1);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (finite_width_count &gt;= 2)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> i_remaining[2] = { (1 &lt;&lt; max_d_index) &amp; 3, (3 &gt;&gt; max_d_index) ^ 1 }; <span class="comment">// = {(max_d_index+1)%3, (max_d_index+2)%3}</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> i_select = (int)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(delta[i_remaining[1]], recip_n2[i_remaining[1]], delta[i_remaining[0]], recip_n2[i_remaining[0]]); <span class="comment">// Select the greater of the remaining dot products</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> j = i_remaining[i_select^i]; <span class="comment">// i = 0 =&gt; the next-greatest, i = 1 =&gt; the least</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> ((r | R[j]) &gt;= 0)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; r = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(R[max_d_index], R[j]);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; r = (1 / r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>)*r; <span class="comment">// We could just as well multiply r by sgn(r.z); we just need to ensure r.z &gt; 0</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; index[1] = index[j];</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; N = 2;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; index[0] = index_max;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Transform r back to 3D space</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; p = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*x + r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*y + (-r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>)*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// Pack S array with kept planes</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span> (N &lt; 2 || index[1] != 0) { <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i) S[i] = S[index[i]]; } <span class="comment">// Safe to copy columns in order</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span> { <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> temp = S[0]; S[0] = S[index[0]]; S[1] = temp; } <span class="comment">// Otherwise use temp storage to avoid overwrite</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; S[N] = h;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; plane_count = N + 1;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// Performs the VS algorithm for D = 3</span></div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac6a01ae68f18ecfe9d275f375997e3b9"> 279</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac6a01ae68f18ecfe9d275f375997e3b9">vs3d_test</a>(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html">VS3D_Halfspace_Set</a>&amp; halfspace_set, real* q = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;{</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// Objective = q if it is not NULL, otherwise it is the origin represented in homogeneous coordinates</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> objective = q ? (q[3] != 0 ? <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>((1 / q[3])*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(q[0], q[1], q[2]), 1) : *(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>*)q) : <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(0, 0, 0), 1);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Tolerance for 3D void simplex algorithm</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">const</span> real eps_f = (<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6">real</a>)1 / (<span class="keyword">sizeof</span>(real) == 4 ? (1L &lt;&lt; 23) : (1LL &lt;&lt; 52)); <span class="comment">// Floating-point epsilon</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#if VS3D_HIGH_ACCURACY || REAL_DOUBLE</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> real eps = 8 * eps_f;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> real eps = 80 * eps_f;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> real eps2 = eps*eps; <span class="comment">// Using epsilon squared</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// Maximum allowed iterations of main loop. If exceeded, error code is returned</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_iteration_count = 50;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// State</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> S[4]; <span class="comment">// Up to 4 planes</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">int</span> plane_count = 0; <span class="comment">// Number of valid planes</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> p = objective; <span class="comment">// Test point, initialized to objective</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Default result, changed to valid result if found in loop below</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordtype">int</span> result = -1;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// Iterate until a stopping condition is met or the maximum number of iterations is reached</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; result &lt; 0 &amp;&amp; i &lt; max_iteration_count; ++i)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; plane = S[plane_count++];</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; real delta = halfspace_set.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html#a3a38d067e70fffca879b6d7139952652">farthest_halfspace</a>(&amp;plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, &amp;p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#if VS3D_UNNORMALIZED_PLANE_HANDLING != 0</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">const</span> real recip_norm = vs3d_recip_sqrt(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> | plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; plane = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(recip_norm*plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, recip_norm*plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; delta *= recip_norm;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (delta &lt;= 0 || delta*delta &lt;= eps2*(p | p)) result = 1; <span class="comment">// Intersection found</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!vs3d_update(p, S, plane_count, objective, eps2)) result = 0; <span class="comment">// Void simplex found</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// If q is given, fill it with the solution (normalize p.w if it is not zero)</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (q) *(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>*)q = (p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a> != 0) ? <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>((1 / p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>)*p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, 1) : p;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;} <span class="comment">// namespace VSA</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGVSA_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html">Nv::Blast::VSA::VS3D_Halfspace_Set</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringVSA.h:45</div></div>
+<a href="_nv_blast_ext_authoring_v_s_a_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTAUTHORINGVSA_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTAUTHORINGVSA_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> This code copied from APEX GSA</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html"> 41</a></span>&#160;<span class="keyword">namespace </span>VSA</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6"> 43</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6">real</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html">VS3D_Halfspace_Set</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> real <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html#a3a38d067e70fffca879b6d7139952652">farthest_halfspace</a>(real plane[4], <span class="keyword">const</span> real point[4]) = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// Simple types and operations for internal calculations</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098"> 52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> { real <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>; }; <span class="comment">// 3-vector </span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2"> 53</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(real <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, real <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, real <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) { <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> r; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> = <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> = <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> = <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>; <span class="keywordflow">return</span> r; } <span class="comment">// vector builder</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad2ed66762db3fe1f41d35fa6b46df1ee"> 54</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad2ed66762db3fe1f41d35fa6b46df1ee">operator + </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> + b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> + b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> + b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>); } <span class="comment">// vector addition</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a207654189a89fba3d6256779afcd41d1"> 55</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a207654189a89fba3d6256779afcd41d1">operator * </a>(real s, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; v) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(s*v.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, s*v.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, s*v.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>); } <span class="comment">// scalar multiplication</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad74b41a40540aa0ea4de7600bac6f552"> 56</a></span>&#160;<span class="keyword">inline</span> real <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad74b41a40540aa0ea4de7600bac6f552">operator | </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b) { <span class="keywordflow">return</span> a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> + a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> + a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>; } <span class="comment">// dot product</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a38ae2e49308ac2b5c9285edaf237c976"> 57</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a38ae2e49308ac2b5c9285edaf237c976">operator ^ </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> - b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> - b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> - b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>); } <span class="comment">// cross product</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c"> 59</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> { <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> v; real <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>; }; <span class="comment">// 4-vector split into 3-vector and scalar parts</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82"> 60</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; v, real <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) { <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> r; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> = v; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a> = <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>; <span class="keywordflow">return</span> r; } <span class="comment">// vector builder</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a87683b078798507378729b21dd4aa0da"> 61</a></span>&#160;<span class="keyword">inline</span> real <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad74b41a40540aa0ea4de7600bac6f552">operator | </a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; b) { <span class="keywordflow">return</span> (a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> | b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>) + a.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*b.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>; } <span class="comment">// dot product</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// More accurate perpendicular</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581"> 64</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; a, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; b)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> c = a^b; <span class="comment">// Cross-product gives perpendicular</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#if VS3D_HIGH_ACCURACY || REAL_DOUBLE</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> real c2 = c | c;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span> (c2 != 0) c = c + (1 / c2)*((a | c)*(c^b) + (b | c)*(a^c)); <span class="comment">// Improvement to (a b)^T(c) = (0)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> c;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// Square</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e"> 75</a></span>&#160;<span class="keyword">inline</span> real <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(real <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) { <span class="keywordflow">return</span> x*<a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// Returns index of the extremal element in a three-element set {e0, e1, e2} based upon comparisons c_ij. The extremal index m is such that c_mn is true, or e_m == e_n, for all n.</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880"> 78</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>(<span class="keywordtype">int</span> c_10, <span class="keywordtype">int</span> c_21, <span class="keywordtype">int</span> c_20) { <span class="keywordflow">return</span> c_10 &lt;&lt; c_21 | (c_21&amp;c_20) &lt;&lt; 1; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// Returns index (0, 1, or 2) of minimum argument</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac40d9e7d67ea46fd503fc1001174256c"> 81</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac40d9e7d67ea46fd503fc1001174256c">index_of_min</a>(real x0, real x1, real x2) { <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>((<span class="keywordtype">int</span>)(x1 &lt; x0), (<span class="keywordtype">int</span>)(x2 &lt; x1), (<span class="keywordtype">int</span>)(x2 &lt; x0)); }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// Compare fractions with positive deominators. Returns a_num*sqrt(a_rden2) &gt; b_num*sqrt(b_rden2)</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d"> 84</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(real a_num, real a_rden2, real b_num, real b_rden2)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> a_num_neg = a_num &lt; 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> b_num_neg = b_num &lt; 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> a_num_neg != b_num_neg ? b_num_neg : ((a_num*a_num*a_rden2 &gt; b_num*b_num*b_rden2) != a_num_neg);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// Returns index (0, 1, or 2) of maximum fraction with positive deominators</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#aa4cd5beecd9202dfd1b9440aca332ae9"> 92</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#aa4cd5beecd9202dfd1b9440aca332ae9">index_of_max_frac</a>(real x0_num, real x0_rden2, real x1_num, real x1_rden2, real x2_num, real x2_rden2)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>((<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(x1_num, x1_rden2, x0_num, x0_rden2), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(x2_num, x2_rden2, x1_num, x1_rden2), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(x2_num, x2_rden2, x0_num, x0_rden2));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// Compare values given their signs and squares. Returns a &gt; b. a2 and b2 may have any constant offset applied to them.</span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15"> 98</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(real sgn_a, real a2, real sgn_b, real b2) { <span class="keywordflow">return</span> sgn_a*sgn_b &lt; 0 ? (sgn_b &lt; 0) : ((a2 &gt; b2) != (sgn_a &lt; 0)); }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// Returns index (0, 1, or 2) of maximum value given their signs and squares. sq_x0, sq_x1, and sq_x2 may have any constant offset applied to them.</span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad99de32f12e7fcd534d856e7c7daf094"> 101</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad99de32f12e7fcd534d856e7c7daf094">index_of_max_sgn_sq</a>(real sgn_x0, real sq_x0, real sgn_x1, real sq_x1, real sgn_x2, real sq_x2)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#acc5d2bf37685bfd6e8763d559d144880">ext_index</a>((<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(sgn_x1, sq_x1, sgn_x0, sq_x0), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(sgn_x2, sq_x2, sgn_x1, sq_x1), (<span class="keywordtype">int</span>)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ab202062acbefba5fac638d3caf7b8b15">sgn_sq_gt</a>(sgn_x2, sq_x2, sgn_x0, sq_x0));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// Project 2D (homogeneous) vector onto 2D half-space boundary</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e"> 107</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; r, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; plane, real delta, real recip_n2, real eps2)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; r = r + (-delta*recip_n2)*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, 0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; r = r + (-(r | plane)*recip_n2)*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, 0); <span class="comment">// Second projection for increased accuracy</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> ((r | r) &gt; eps2) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; r = (-plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*recip_n2)*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, 0);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> = 1;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// Update function for vs3d_test</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> vs3d_update(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; p, <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> S[4], <span class="keywordtype">int</span>&amp; plane_count, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; q, real eps2)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// h plane is the last plane</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; h = S[plane_count - 1];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Handle plane_count == 1 specially (optimization; this could be commented out)</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (plane_count == 1)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Solution is objective projected onto h plane</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; p = q;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> = p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> + -(p | h)*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; if ((p | p) &lt;= eps2) p = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(-h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, 1); <span class="comment">// If p == 0 then q is a direction vector, any point in h is a support point</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// Create basis in the h plane</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_i = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac40d9e7d67ea46fd503fc1001174256c">index_of_min</a>(h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a> = h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>^<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>((real)(min_i == 0), (real)(min_i == 1), (real)(min_i == 2));</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a> = y^h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Use reduced vector r instead of p</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> r = { x | q.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, y | q.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, q.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*(y | <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) }; <span class="comment">// (x|x) = (y|y) = square of plane basis scale</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// If r == 0 (within epsilon), then it is a direction vector, and we have a bounded solution</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> ((r | r) &lt;= eps2) r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> = 1;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Create plane equations in the h plane. These will not be normalized in general.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">int</span> N = 0; <span class="comment">// Plane count in h subspace</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> R[3]; <span class="comment">// Planes in h subspace</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; real recip_n2[3]; <span class="comment">// Plane normal vector reciprocal lengths squared</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; real delta[3]; <span class="comment">// Signed distance of objective to the planes</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">int</span> index[3]; <span class="comment">// Keep track of original plane indices</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; for (<span class="keywordtype">int</span> i = 0; i &lt; plane_count - 1; ++i)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a>&amp; vi = S[i].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">const</span> real cos_theta = h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> | vi;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; R[N] = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(x | vi, y | vi, S[i].<a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a> - h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>*cos_theta);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; index[N] = i;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> real n2 = R[N].x*R[N].x + R[N].y*R[N].y;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (n2 &gt;= eps2)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> real lin_norm = (<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6">real</a>)1.5 - (real)0.5*n2; <span class="comment">// 1st-order approximation to 1/sqrt(n2) expanded about n2 = 1</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; R[N] = lin_norm*R[N]; <span class="comment">// We don&#39;t need normalized plane equations, but rescaling (even with an approximate normalization) gives better numerical behavior</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; recip_n2[N] = 1 / (R[N].x*R[N].x + R[N].y*R[N].y);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; delta[N] = r | R[N];</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; ++N; <span class="comment">// Keep this plane</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cos_theta &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Parallel cases are redundant and rejected, anti-parallel cases are 1D voids</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// Now work with the N-sized R array of half-spaces in the h plane</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">switch</span> (N)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> 1: one_plane :</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (delta[0] &lt; 0) N = 0; <span class="comment">// S[0] is redundant, eliminate it</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(r, R[0], delta[0], recip_n2[0], eps2);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> 2: two_planes :</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (delta[0] &lt; 0 &amp;&amp; delta[1] &lt; 0) N = 0; <span class="comment">// S[0] and S[1] are redundant, eliminate them</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_d_index = (int)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(delta[1], recip_n2[1], delta[0], recip_n2[0]);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(r, R[max_d_index], delta[max_d_index], recip_n2[max_d_index], eps2);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> min_d_index = max_d_index ^ 1;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> real new_delta_min = r | R[min_d_index];</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (new_delta_min &lt; 0)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; index[0] = index[max_d_index];</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; N = 1; <span class="comment">// S[min_d_index] is redundant, eliminate it</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// Set r to the intersection of R[0] and R[1] and keep both</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; r = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(R[0], R[1]);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*recip_n2[0] * recip_n2[1] &lt; eps2)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (R[0].x*R[1].x + R[0].y*R[1].y &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// 2D void found</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">goto</span> one_plane;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; r = (1 / r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>)*r; <span class="comment">// We could just as well multiply r by sgn(r.z); we just need to ensure r.z &gt; 0</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (delta[0] &lt; 0 &amp;&amp; delta[1] &lt; 0 &amp;&amp; delta[2] &lt; 0) N = 0; <span class="comment">// S[0], S[1], and S[2] are redundant, eliminate them</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> row_x = { R[0].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, R[1].x, R[2].x };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> row_y = { R[0].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>, R[1].y, R[2].y };</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> row_w = { R[0].<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>, R[1].z, R[2].z };</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html">Vec3</a> cof_w = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(row_x, row_y);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> detR_pos = (row_w | cof_w) &gt; 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> nrw_sgn0 = cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*recip_n2[1] * recip_n2[2] &lt; eps2 ? 0 : (((int)((cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a> &gt; 0) == detR_pos) &lt;&lt; 1) - 1);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> nrw_sgn1 = cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*recip_n2[2] * recip_n2[0] &lt; eps2 ? 0 : (((int)((cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a> &gt; 0) == detR_pos) &lt;&lt; 1) - 1);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> nrw_sgn2 = cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*recip_n2[0] * recip_n2[1] &lt; eps2 ? 0 : (((int)((cof_w.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> &gt; 0) == detR_pos) &lt;&lt; 1) - 1);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> ((nrw_sgn0 | nrw_sgn1 | nrw_sgn2) &gt;= 0) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// 3D void found</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> positive_width_count = ((nrw_sgn0 &gt;&gt; 1) &amp; 1) + ((nrw_sgn1 &gt;&gt; 1) &amp; 1) + ((nrw_sgn2 &gt;&gt; 1) &amp; 1);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (positive_width_count == 1)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">// A single positive width results from a redundant plane. Eliminate it and peform N = 2 calculation.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> pos_width_index = ((nrw_sgn1 &gt;&gt; 1) &amp; 1) | (nrw_sgn2 &amp; 2); <span class="comment">// Calculates which index corresponds to the positive-width side</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; R[pos_width_index] = R[2];</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; recip_n2[pos_width_index] = recip_n2[2];</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; delta[pos_width_index] = delta[2];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; index[pos_width_index] = index[2];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; N = 2;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">goto</span> two_planes;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// Find the max dot product of r and R[i]/|R_normal[i]|. For numerical accuracy when the angle between r and the i^{th} plane normal is small, we take some care below:</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_d_index = r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a> != 0</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; ? <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#aa4cd5beecd9202dfd1b9440aca332ae9">index_of_max_frac</a>(delta[0], recip_n2[0], delta[1], recip_n2[1], delta[2], recip_n2[2]) <span class="comment">// displacement term resolves small-angle ambiguity, just use dot product</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; : <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ad99de32f12e7fcd534d856e7c7daf094">index_of_max_sgn_sq</a>(delta[0], -<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*R[0].y - r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*R[0].x)*recip_n2[0], delta[1], -<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*R[1].y - r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*R[1].x)*recip_n2[1], delta[2], -<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae7c36beab73d66e43e7fcaf72309f65e">sq</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*R[2].y - r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*R[2].x)*recip_n2[2]); <span class="comment">// No displacement term. Use wedge product to find the sine of the angle.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Project r onto max-d plane</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a42e36ee6745a0051b19817e9d33ed91e">project2D</a>(r, R[max_d_index], delta[max_d_index], recip_n2[max_d_index], eps2);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; N = 1; <span class="comment">// Unless we use a vertex in the loop below</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> index_max = index[max_d_index];</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// The number of finite widths should be &gt;= 2. If not, it should be 0, but in any case it implies three parallel lines in the plane, which we should not have here.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// If we do have three parallel lines (# of finite widths &lt; 2), we&#39;ve picked the line corresponding to the half-plane farthest from r, which is correct.</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> finite_width_count = (nrw_sgn0 &amp; 1) + (nrw_sgn1 &amp; 1) + (nrw_sgn2 &amp; 1);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (finite_width_count &gt;= 2)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> i_remaining[2] = { (1 &lt;&lt; max_d_index) &amp; 3, (3 &gt;&gt; max_d_index) ^ 1 }; <span class="comment">// = {(max_d_index+1)%3, (max_d_index+2)%3}</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> i_select = (int)<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">frac_gt</a>(delta[i_remaining[1]], recip_n2[i_remaining[1]], delta[i_remaining[0]], recip_n2[i_remaining[0]]); <span class="comment">// Select the greater of the remaining dot products</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> j = i_remaining[i_select^i]; <span class="comment">// i = 0 =&gt; the next-greatest, i = 1 =&gt; the least</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> ((r | R[j]) &gt;= 0)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; r = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a31a9155136d1363434a70a3d9005c581">perp</a>(R[max_d_index], R[j]);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; r = (1 / r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>)*r; <span class="comment">// We could just as well multiply r by sgn(r.z); we just need to ensure r.z &gt; 0</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; index[1] = index[j];</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; N = 2;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; index[0] = index_max;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Transform r back to 3D space</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; p = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>*x + r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#aa1a733303a2cf444b2feca0659e6baf0">y</a>*y + (-r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>)*h.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, r.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">z</a>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// Pack S array with kept planes</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span> (N &lt; 2 || index[1] != 0) { <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i) S[i] = S[index[i]]; } <span class="comment">// Safe to copy columns in order</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span> { <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> temp = S[0]; S[0] = S[index[0]]; S[1] = temp; } <span class="comment">// Otherwise use temp storage to avoid overwrite</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; S[N] = h;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; plane_count = N + 1;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// Performs the VS algorithm for D = 3</span></div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac6a01ae68f18ecfe9d275f375997e3b9"> 279</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ac6a01ae68f18ecfe9d275f375997e3b9">vs3d_test</a>(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html">VS3D_Halfspace_Set</a>&amp; halfspace_set, real* q = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;{</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// Objective = q if it is not NULL, otherwise it is the origin represented in homogeneous coordinates</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> objective = q ? (q[3] != 0 ? <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>((1 / q[3])*<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(q[0], q[1], q[2]), 1) : *(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>*)q) : <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a78881c15732472ced3ab2e77bc11dfc2">vec3</a>(0, 0, 0), 1);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Tolerance for 3D void simplex algorithm</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">const</span> real eps_f = (<a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#a17168752dfdb7c7b455d54f98d7f87d6">real</a>)1 / (<span class="keyword">sizeof</span>(real) == 4 ? (1L &lt;&lt; 23) : (1LL &lt;&lt; 52)); <span class="comment">// Floating-point epsilon</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#if VS3D_HIGH_ACCURACY || REAL_DOUBLE</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> real eps = 8 * eps_f;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> real eps = 80 * eps_f;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> real eps2 = eps*eps; <span class="comment">// Using epsilon squared</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// Maximum allowed iterations of main loop. If exceeded, error code is returned</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> max_iteration_count = 50;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// State</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> S[4]; <span class="comment">// Up to 4 planes</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">int</span> plane_count = 0; <span class="comment">// Number of valid planes</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a> p = objective; <span class="comment">// Test point, initialized to objective</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Default result, changed to valid result if found in loop below</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordtype">int</span> result = -1;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// Iterate until a stopping condition is met or the maximum number of iterations is reached</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; result &lt; 0 &amp;&amp; i &lt; max_iteration_count; ++i)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>&amp; plane = S[plane_count++];</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; real delta = halfspace_set.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html#a3a38d067e70fffca879b6d7139952652">farthest_halfspace</a>(&amp;plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>, &amp;p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ae335cbbcb1b1a657b4e42feb54a413ae">x</a>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#if VS3D_UNNORMALIZED_PLANE_HANDLING != 0</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">const</span> real recip_norm = vs3d_recip_sqrt(plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a> | plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; plane = <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>(recip_norm*plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, recip_norm*plane.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; delta *= recip_norm;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (delta &lt;= 0 || delta*delta &lt;= eps2*(p | p)) result = 1; <span class="comment">// Intersection found</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!vs3d_update(p, S, plane_count, objective, eps2)) result = 0; <span class="comment">// Void simplex found</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// If q is given, fill it with the solution (normalize p.w if it is not zero)</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (q) *(<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html">Vec4</a>*)q = (p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a> != 0) ? <a class="code" href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">vec4</a>((1 / p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#aa03b64741c5ebccd33323c19a278da2c">w</a>)*p.<a class="code" href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec4.html#a1c361f283cb854916057ab8fcbe85062">v</a>, 1) : p;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;} <span class="comment">// namespace VSA</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTAUTHORINGVSA_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_v_s_a_1_1_v_s3_d___halfspace___set.html">Nv::Blast::VSA::VS3D_Halfspace_Set</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringVSA.h:45</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_v_s_a_html_ae9cc9edbccb4fe70660e16546bf7bb82"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_v_s_a.html#ae9cc9edbccb4fe70660e16546bf7bb82">Nv::Blast::VSA::vec4</a></div><div class="ttdeci">Vec4 vec4(const Vec3 &amp;v, real w)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringVSA.h:60</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3_html_ad0c0d42fa98073907e15bfee206cd098"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_v_s_a_1_1_vec3.html#ad0c0d42fa98073907e15bfee206cd098">Nv::Blast::VSA::Vec3::z</a></div><div class="ttdeci">real z</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringVSA.h:52</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_v_s_a_html_a5d0eb514919e6254be7fd4c428fb156d"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_v_s_a.html#a5d0eb514919e6254be7fd4c428fb156d">Nv::Blast::VSA::frac_gt</a></div><div class="ttdeci">bool frac_gt(real a_num, real a_rden2, real b_num, real b_rden2)</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringVSA.h:84</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h-source.html b/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h-source.html
index 2493b21..996752d 100755
--- a/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h-source.html
+++ b/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h-source.html
@@ -69,120 +69,121 @@
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "PxProfiler.h"</span>
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 <span class="preprocessor">#if NV_NVTX </span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#include "nvToolsExt.h"</span>
-<a name="l00037"></a>00037 <a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }
-<a name="l00038"></a>00038 <a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }
-<a name="l00039"></a>00039
-<a name="l00040"></a>00040 <span class="preprocessor">#elif NV_XBOXONE</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#include "xboxone/NvBlastProfilerXB1.h"</span>
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 <span class="preprocessor">#elif NV_PS4</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#include "ps4/NvBlastProfilerPS4.h"</span>
-<a name="l00045"></a>00045
-<a name="l00046"></a>00046 <span class="preprocessor">#else</span>
-<a name="l00047"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">00047</a> <span class="preprocessor"></span><a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }
-<a name="l00048"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">00048</a> <a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }
-<a name="l00049"></a>00049
-<a name="l00050"></a>00050 <span class="preprocessor">#endif</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span>
-<a name="l00052"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#c2330888dc0d7693449501ca70ce0b18">00052</a> <span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>
-<a name="l00054"></a>00054 <span class="keyword">namespace </span>Nv
-<a name="l00055"></a>00055 {
-<a name="l00056"></a>00056 <span class="keyword">namespace </span>Blast
-<a name="l00057"></a>00057 {
-<a name="l00058"></a>00058
-<a name="l00059"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">00059</a> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>
-<a name="l00060"></a>00060 {
-<a name="l00061"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">00061</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>;
-<a name="l00062"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">00062</a> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>;
-<a name="l00063"></a>00063 };
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;
-<a name="l00067"></a>00067 <span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];
-<a name="l00068"></a>00068 <span class="keyword">static</span> thread_local int32_t th_depth = 0;
-<a name="l00069"></a>00069 <span class="preprocessor">#endif</span>
-<a name="l00070"></a>00070 <span class="preprocessor"></span>
-<a name="l00071"></a>00071
-<a name="l00076"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">00076</a> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a>
-<a name="l00077"></a>00077 {
-<a name="l00078"></a>00078 <span class="keyword">public</span>:
-<a name="l00082"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">00082</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}
-<a name="l00083"></a>00083
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;PxFoundation.h&gt;</span>
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="preprocessor">#if NV_NVTX </span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#include "nvToolsExt.h"</span>
+<a name="l00038"></a>00038 <a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }
+<a name="l00039"></a>00039 <a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="preprocessor">#elif NV_XBOXONE</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#include "xboxone/NvBlastProfilerXB1.h"</span>
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="preprocessor">#elif NV_PS4</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#include "ps4/NvBlastProfilerPS4.h"</span>
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="preprocessor">#else</span>
+<a name="l00048"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">00048</a> <span class="preprocessor"></span><a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }
+<a name="l00049"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">00049</a> <a class="code" href="group__foundation.html#g36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a><a class="code" href="_nv_blast_ext_custom_profiler_8h.html#c2330888dc0d7693449501ca70ce0b18">00053</a> <span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span>
+<a name="l00055"></a>00055 <span class="keyword">namespace </span>Nv
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <span class="keyword">namespace </span>Blast
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059
+<a name="l00060"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">00060</a> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>
+<a name="l00061"></a>00061 {
+<a name="l00062"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">00062</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>;
+<a name="l00063"></a><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">00063</a> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>;
+<a name="l00064"></a>00064 };
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;
+<a name="l00068"></a>00068 <span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];
+<a name="l00069"></a>00069 <span class="keyword">static</span> thread_local int32_t th_depth = 0;
+<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span>
+<a name="l00072"></a>00072
+<a name="l00077"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">00077</a> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a>
+<a name="l00078"></a>00078 {
+<a name="l00079"></a>00079 <span class="keyword">public</span>:
+<a name="l00083"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">00083</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}
<a name="l00084"></a>00084
-<a name="l00086"></a>00086
-<a name="l00087"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">00087</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)<span class="keyword"> override</span>
-<a name="l00088"></a>00088 <span class="keyword"> </span>{
-<a name="l00089"></a>00089
-<a name="l00090"></a>00090 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
-<a name="l00091"></a>00091 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
-<a name="l00092"></a>00092 {
-<a name="l00093"></a>00093 <span class="keywordtype">void</span>* data = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)
-<a name="l00096"></a>00096 {
-<a name="l00097"></a>00097 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a> = name;
-<a name="l00098"></a>00098 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a> = data;
-<a name="l00099"></a>00099 th_depth++;
-<a name="l00100"></a>00100 }
-<a name="l00101"></a>00101 <span class="keywordflow">else</span>
-<a name="l00102"></a>00102 {
-<a name="l00103"></a>00103 assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);
-<a name="l00104"></a>00104 }
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 <span class="preprocessor">#endif</span>
-<a name="l00107"></a>00107 <span class="preprocessor"></span>
-<a name="l00108"></a>00108 <span class="keywordflow">if</span> (m_platformEnabled)
-<a name="l00109"></a>00109 {
-<a name="l00110"></a>00110 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);
-<a name="l00111"></a>00111 }
-<a name="l00112"></a>00112 }
-<a name="l00113"></a>00113
-<a name="l00114"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">00114</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span>
-<a name="l00115"></a>00115 <span class="keyword"> </span>{
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
-<a name="l00118"></a>00118 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
-<a name="l00119"></a>00119 {
-<a name="l00120"></a>00120 th_depth--;
-<a name="l00121"></a>00121
-<a name="l00122"></a>00122 <span class="keywordflow">if</span> (th_depth &gt;= 0)
-<a name="l00123"></a>00123 {
-<a name="l00124"></a>00124 <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];
-<a name="l00125"></a>00125 PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);
-<a name="l00126"></a>00126 }
-<a name="l00127"></a>00127 <span class="keywordflow">else</span>
-<a name="l00128"></a>00128 {
-<a name="l00129"></a>00129 assert(th_depth &gt;= 0);
-<a name="l00130"></a>00130 }
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132 <span class="preprocessor">#endif</span>
-<a name="l00133"></a>00133 <span class="preprocessor"></span>
-<a name="l00134"></a>00134 <span class="keywordflow">if</span> (m_platformEnabled)
-<a name="l00135"></a>00135 {
-<a name="l00136"></a>00136 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();
-<a name="l00137"></a>00137 }
-<a name="l00138"></a>00138 }
-<a name="l00139"></a>00139
+<a name="l00085"></a>00085
+<a name="l00087"></a>00087
+<a name="l00088"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">00088</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)<span class="keyword"> override</span>
+<a name="l00089"></a>00089 <span class="keyword"> </span>{
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 <span class="keywordtype">void</span>* data = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)
+<a name="l00097"></a>00097 {
+<a name="l00098"></a>00098 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a> = name;
+<a name="l00099"></a>00099 th_ProfileData[th_depth].<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a> = data;
+<a name="l00100"></a>00100 th_depth++;
+<a name="l00101"></a>00101 }
+<a name="l00102"></a>00102 <span class="keywordflow">else</span>
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104 assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 }
+<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109 <span class="keywordflow">if</span> (m_platformEnabled)
+<a name="l00110"></a>00110 {
+<a name="l00111"></a>00111 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114
+<a name="l00115"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">00115</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#be4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span>
+<a name="l00116"></a>00116 <span class="keyword"> </span>{
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 <span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span>
+<a name="l00119"></a>00119 <span class="preprocessor"></span> <span class="keywordflow">if</span> (PxGetProfilerCallback())
+<a name="l00120"></a>00120 {
+<a name="l00121"></a>00121 th_depth--;
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 <span class="keywordflow">if</span> (th_depth &gt;= 0)
+<a name="l00124"></a>00124 {
+<a name="l00125"></a>00125 <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];
+<a name="l00126"></a>00126 PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#e45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128 <span class="keywordflow">else</span>
+<a name="l00129"></a>00129 {
+<a name="l00130"></a>00130 assert(th_depth &gt;= 0);
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133 <span class="preprocessor">#endif</span>
+<a name="l00134"></a>00134 <span class="preprocessor"></span>
+<a name="l00135"></a>00135 <span class="keywordflow">if</span> (m_platformEnabled)
+<a name="l00136"></a>00136 {
+<a name="l00137"></a>00137 <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#a1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();
+<a name="l00138"></a>00138 }
+<a name="l00139"></a>00139 }
<a name="l00140"></a>00140
-<a name="l00142"></a>00142
-<a name="l00148"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">00148</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)
-<a name="l00149"></a>00149 {
-<a name="l00150"></a>00150 m_platformEnabled = enabled;
-<a name="l00151"></a>00151 }
-<a name="l00152"></a>00152
-<a name="l00153"></a>00153 <span class="keyword">private</span>:
-<a name="l00154"></a>00154 <span class="keywordtype">bool</span> m_platformEnabled;
-<a name="l00155"></a>00155 };
-<a name="l00156"></a>00156
-<a name="l00157"></a>00157 } <span class="comment">// namespace Blast</span>
-<a name="l00158"></a>00158 } <span class="comment">// namespace Nv</span>
-<a name="l00159"></a>00159
+<a name="l00141"></a>00141
+<a name="l00143"></a>00143
+<a name="l00149"></a><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">00149</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)
+<a name="l00150"></a>00150 {
+<a name="l00151"></a>00151 m_platformEnabled = enabled;
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 <span class="keyword">private</span>:
+<a name="l00155"></a>00155 <span class="keywordtype">bool</span> m_platformEnabled;
+<a name="l00156"></a>00156 };
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 } <span class="comment">// namespace Blast</span>
+<a name="l00159"></a>00159 } <span class="comment">// namespace Nv</span>
<a name="l00160"></a>00160
-<a name="l00161"></a>00161 <span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span>
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 <span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span>
</pre></div></div>
<!-- start footer part -->
<div class="footer">
diff --git a/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h.html b/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h.html
index 832c889..59d593a 100755
--- a/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h.html
+++ b/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h.html
@@ -40,6 +40,7 @@
<div class="contents">
<h1>sdk/extensions/physx/include/NvBlastExtCustomProfiler.h File Reference</h1><code>#include &quot;<a class="el" href="_nv_blast_profiler_8h-source.html">NvBlastProfiler.h</a>&quot;</code><br>
<code>#include &quot;PxProfiler.h&quot;</code><br>
+<code>#include &lt;PxFoundation.h&gt;</code><br>
<p>
<a href="_nv_blast_ext_custom_profiler_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
diff --git a/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h_source.html b/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h_source.html
index 3ff2e44..e0f9585 100755
--- a/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_custom_profiler_8h_source.html
@@ -46,19 +46,19 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_custom_profiler_8h_sourc
<div class="title">NvBlastExtCustomProfiler.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_custom_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxProfiler.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if NV_NVTX </span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;nvToolsExt.h&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#elif NV_XBOXONE</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;xboxone/NvBlastProfilerXB1.h&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;ps4/NvBlastProfilerPS4.h&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef"> 47</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c"> 48</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#ac2330888dc0d7693449501ca70ce0b18"> 52</a></span>&#160;<span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html"> 59</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83"> 61</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d"> 62</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">static</span> thread_local int32_t th_depth = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html"> 76</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6"> 82</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1"> 87</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>)<span class="keyword"> override</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a> = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; th_ProfileData[th_depth].name = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; th_ProfileData[th_depth].data = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; th_depth++;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b"> 114</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; th_depth--;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (th_depth &gt;= 0)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; assert(th_depth &gt;= 0);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94"> 148</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_platformEnabled = enabled;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">bool</span> m_platformEnabled;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;};</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a78b9d61f6da77c27fe4436997363dfb1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">Nv::Blast::ExtCustomProfiler::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:87</div></div>
-<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa1585207662452977fb8b6593e71f40c"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a></div><div class="ttdeci">NV_INLINE void platformZoneEnd()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:48</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">Nv::Blast::ExtCustomProfiler</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:76</div></div>
-<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa73cff190baa0fe10aa4b5d21dd5a7ef"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a></div><div class="ttdeci">NV_INLINE void platformZoneStart(const char *)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:47</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a326703192c1cef7196f271e6dd47bd94"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">Nv::Blast::ExtCustomProfiler::setPlatformEnabled</a></div><div class="ttdeci">void setPlatformEnabled(bool enabled)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:148</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a9e7434d8654794fc69d7f0b7afab22d6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">Nv::Blast::ExtCustomProfiler::ExtCustomProfiler</a></div><div class="ttdeci">ExtCustomProfiler()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:82</div></div>
+<a href="_nv_blast_ext_custom_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTDEFAULTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxProfiler.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxFoundation.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if NV_NVTX </span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;nvToolsExt.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) { nvtxRangePushA(name); }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { nvtxRangePop(); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#elif NV_XBOXONE</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;xboxone/NvBlastProfilerXB1.h&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;ps4/NvBlastProfilerPS4.h&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef"> 48</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*) { }</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c"> 49</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>() { }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_nv_blast_ext_custom_profiler_8h.html#ac2330888dc0d7693449501ca70ce0b18"> 53</a></span>&#160;<span class="preprocessor">#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC &gt; 12)</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83"> 62</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d"> 63</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> int32_t PROFILER_MAX_NESTED_DEPTH = 64;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">static</span> thread_local <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a> th_ProfileData[PROFILER_MAX_NESTED_DEPTH];</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">static</span> thread_local int32_t th_depth = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html"> 77</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">ExtCustomProfiler</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6"> 83</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">ExtCustomProfiler</a>() : m_platformEnabled(false) {}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1"> 88</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>)<span class="keyword"> override</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a> = PxGetProfilerCallback()-&gt;zoneStart(name, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; th_ProfileData[th_depth].name = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; th_ProfileData[th_depth].data = <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; th_depth++;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; assert(th_depth &lt; PROFILER_MAX_NESTED_DEPTH &amp;&amp; th_depth &gt;= 0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a>(name);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b"> 115</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">zoneEnd</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#if SUPPORTS_THREAD_LOCAL</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (PxGetProfilerCallback())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; th_depth--;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (th_depth &gt;= 0)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html">ExtProfileData</a>&amp; pd = th_ProfileData[th_depth];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; PxGetProfilerCallback()-&gt;zoneEnd(pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">data</a>, pd.<a class="code" href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">name</a>, <span class="keyword">false</span>, 0xb1a57);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; assert(th_depth &gt;= 0);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (m_platformEnabled)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94"> 149</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">setPlatformEnabled</a>(<span class="keywordtype">bool</span> enabled)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_platformEnabled = enabled;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">bool</span> m_platformEnabled;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;};</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif // NVBLASTDEFAULTPROFILER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a78b9d61f6da77c27fe4436997363dfb1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a78b9d61f6da77c27fe4436997363dfb1">Nv::Blast::ExtCustomProfiler::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:88</div></div>
+<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa1585207662452977fb8b6593e71f40c"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c">platformZoneEnd</a></div><div class="ttdeci">NV_INLINE void platformZoneEnd()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:49</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html">Nv::Blast::ExtCustomProfiler</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:77</div></div>
+<div class="ttc" id="_nv_blast_ext_custom_profiler_8h_html_aa73cff190baa0fe10aa4b5d21dd5a7ef"><div class="ttname"><a href="_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef">platformZoneStart</a></div><div class="ttdeci">NV_INLINE void platformZoneStart(const char *)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:48</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a326703192c1cef7196f271e6dd47bd94"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a326703192c1cef7196f271e6dd47bd94">Nv::Blast::ExtCustomProfiler::setPlatformEnabled</a></div><div class="ttdeci">void setPlatformEnabled(bool enabled)</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:149</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_a9e7434d8654794fc69d7f0b7afab22d6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#a9e7434d8654794fc69d7f0b7afab22d6">Nv::Blast::ExtCustomProfiler::ExtCustomProfiler</a></div><div class="ttdeci">ExtCustomProfiler()</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:83</div></div>
<div class="ttc" id="group__foundation_html_ga36a01a4a51968418a26b06da7e1ad5d0"><div class="ttname"><a href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a></div><div class="ttdeci">#define NV_INLINE</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:350</div></div>
-<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_abe4743b5975ad80c6495167c7a47174b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">Nv::Blast::ExtCustomProfiler::zoneEnd</a></div><div class="ttdeci">virtual void zoneEnd() override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:114</div></div>
+<div class="ttc" id="class_nv_1_1_blast_1_1_ext_custom_profiler_html_abe4743b5975ad80c6495167c7a47174b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_custom_profiler.html#abe4743b5975ad80c6495167c7a47174b">Nv::Blast::ExtCustomProfiler::zoneEnd</a></div><div class="ttdeci">virtual void zoneEnd() override</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:115</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a></div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:44</div></div>
-<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_aecbb14649bf0e4003eb2e906649ebb8d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">Nv::Blast::ExtProfileData::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:62</div></div>
-<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html">Nv::Blast::ExtProfileData</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:59</div></div>
+<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_aecbb14649bf0e4003eb2e906649ebb8d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#aecbb14649bf0e4003eb2e906649ebb8d">Nv::Blast::ExtProfileData::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:63</div></div>
+<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html">Nv::Blast::ExtProfileData</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:60</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
-<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_ae45c1aef4a10db9a1c2433b210d5de83"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">Nv::Blast::ExtProfileData::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:61</div></div>
+<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_profile_data_html_ae45c1aef4a10db9a1c2433b210d5de83"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_profile_data.html#ae45c1aef4a10db9a1c2433b210d5de83">Nv::Blast::ExtProfileData::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> NvBlastExtCustomProfiler.h:62</div></div>
<div class="ttc" id="_nv_blast_profiler_8h_html"><div class="ttname"><a href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/source_docs/files/_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h_source.html b/docs/source_docs/files/_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h_source.html
index f2116f3..0284700 100755
--- a/docs/source_docs/files/_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_damage_accelerator_a_a_b
<div class="title">NvBlastExtDamageAcceleratorAABBTree.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_damage_accelerator_internal_8h.html">NvBlastExtDamageAcceleratorInternal.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html">ExtDamageAcceleratorInternal</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a9d91f502eac1fc4b5b3100ac5dceae61"> 45</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a9d91f502eac1fc4b5b3100ac5dceae61">ExtDamageAcceleratorAABBTree</a>() :</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_root(nullptr)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a2c56baae0f41965642f0eafbc9d51ac4"> 50</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a2c56baae0f41965642f0eafbc9d51ac4">~ExtDamageAcceleratorAABBTree</a>()</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a007fa7ce495c8ee886dcef928eaf93dd">create</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#ab45282017b017a1506ffb27c0fc64b07">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a8f05c2930f24bad6d163e5b98e9cdf7e"> 61</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a8f05c2930f24bad6d163e5b98e9cdf7e">findBondCentroidsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback)<span class="keyword"> const override</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">const_cast&lt;</span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;findInBounds(bounds, resultCallback, <span class="keyword">false</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a23f8c8856f902049d711fb84ae898cc7"> 66</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a23f8c8856f902049d711fb84ae898cc7">findBondSegmentsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback)<span class="keyword"> const override</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const_cast&lt;</span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;findInBounds(bounds, resultCallback, <span class="keyword">true</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a8321ff92fa33151ea6e00cd36f3dca9f">findBondSegmentsPlaneIntersected</a>(<span class="keyword">const</span> physx::PxPlane&amp; plane, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a120085690df9b0ed55fbb281fca965b5">fillDebugRender</a>(<span class="keywordtype">int</span> depth, <span class="keywordtype">bool</span> segments) <span class="keyword">override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a203d1e67ff38908cbe4c96e7a6699903"> 76</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a203d1e67ff38908cbe4c96e7a6699903">getImmediateScratch</a>(<span class="keywordtype">size_t</span> size)<span class="keyword"> override</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_scratch.resizeUninitialized(size);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> m_scratch.begin();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// no copy/assignment</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a9d91f502eac1fc4b5b3100ac5dceae61">ExtDamageAcceleratorAABBTree</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>&amp;);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>&amp; tree);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Tree node </span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">struct </span>Node</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> child[2];</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint32_t first;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; uint32_t last;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; physx::PxBounds3 pointsBound;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; physx::PxBounds3 segmentsBound;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; };</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">void</span> build(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">int</span> createNode(uint32_t startIdx, uint32_t endIdx, uint32_t depth);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> pushResult(<a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, uint32_t pointIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; callback.<a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd">push</a>(pointIndex, m_bonds[pointIndex].node0, m_bonds[pointIndex].node1);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">void</span> findInBounds(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keywordtype">bool</span> segments) <span class="keyword">const</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> findPointsInBounds(<span class="keyword">const</span> Node&amp; node, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keyword">const</span> physx::PxBounds3&amp; bounds) <span class="keyword">const</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">void</span> findSegmentsInBounds(<span class="keyword">const</span> Node&amp; node, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keyword">const</span> physx::PxBounds3&amp; bounds) <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> findSegmentsPlaneIntersected(<span class="keyword">const</span> Node&amp; node, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keyword">const</span> physx::PxPlane&amp; plane) <span class="keyword">const</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> fillDebugBuffer(<span class="keyword">const</span> Node&amp; node, <span class="keywordtype">int</span> currentDepth, <span class="keywordtype">int</span> depth, <span class="keywordtype">bool</span> segments);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; Node* m_root;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;Node&gt;::type</a> m_nodes;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;uint32_t&gt;::type</a> m_indices;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;physx::PxVec3&gt;::type</a> m_points;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">struct </span>Segment</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; physx::PxVec3 p0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; physx::PxVec3 p1;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;Segment&gt;::type</a> m_segments;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">struct </span>BondData</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint32_t node0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t node1;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;BondData&gt;::type</a> m_bonds;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;Nv::Blast::DebugLine&gt;::type</a> m_debugLineBuffer;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;char&gt;::type</a> m_scratch;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;};</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree_html_ab45282017b017a1506ffb27c0fc64b07"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#ab45282017b017a1506ffb27c0fc64b07">Nv::Blast::ExtDamageAcceleratorAABBTree::release</a></div><div class="ttdeci">virtual void release() override</div></div>
+<a href="_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_damage_accelerator_internal_8h.html">NvBlastExtDamageAcceleratorInternal.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html">ExtDamageAcceleratorInternal</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a9d91f502eac1fc4b5b3100ac5dceae61"> 45</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a9d91f502eac1fc4b5b3100ac5dceae61">ExtDamageAcceleratorAABBTree</a>() :</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_root(nullptr)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a2c56baae0f41965642f0eafbc9d51ac4"> 50</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a2c56baae0f41965642f0eafbc9d51ac4">~ExtDamageAcceleratorAABBTree</a>()</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a007fa7ce495c8ee886dcef928eaf93dd">create</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#ab45282017b017a1506ffb27c0fc64b07">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a8f05c2930f24bad6d163e5b98e9cdf7e"> 61</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a8f05c2930f24bad6d163e5b98e9cdf7e">findBondCentroidsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback)<span class="keyword"> const override</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">const_cast&lt;</span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;findInBounds(bounds, resultCallback, <span class="keyword">false</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a23f8c8856f902049d711fb84ae898cc7"> 66</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a23f8c8856f902049d711fb84ae898cc7">findBondSegmentsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback)<span class="keyword"> const override</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const_cast&lt;</span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;findInBounds(bounds, resultCallback, <span class="keyword">true</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a8321ff92fa33151ea6e00cd36f3dca9f">findBondSegmentsPlaneIntersected</a>(<span class="keyword">const</span> physx::PxPlane&amp; plane, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a120085690df9b0ed55fbb281fca965b5">fillDebugRender</a>(<span class="keywordtype">int</span> depth, <span class="keywordtype">bool</span> segments) <span class="keyword">override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a203d1e67ff38908cbe4c96e7a6699903"> 76</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a203d1e67ff38908cbe4c96e7a6699903">getImmediateScratch</a>(<span class="keywordtype">size_t</span> size)<span class="keyword"> override</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_scratch.resizeUninitialized(size);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> m_scratch.begin();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// no copy/assignment</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#a9d91f502eac1fc4b5b3100ac5dceae61">ExtDamageAcceleratorAABBTree</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>&amp;);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html">ExtDamageAcceleratorAABBTree</a>&amp; tree);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Tree node </span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">struct </span>Node</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> child[2];</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint32_t first;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; uint32_t last;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; physx::PxBounds3 pointsBound;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; physx::PxBounds3 segmentsBound;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; };</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">void</span> build(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">int</span> createNode(uint32_t startIdx, uint32_t endIdx, uint32_t depth);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> pushResult(<a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, uint32_t pointIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; callback.<a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd">push</a>(pointIndex, m_bonds[pointIndex].node0, m_bonds[pointIndex].node1);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">void</span> findInBounds(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keywordtype">bool</span> segments) <span class="keyword">const</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> findPointsInBounds(<span class="keyword">const</span> Node&amp; node, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keyword">const</span> physx::PxBounds3&amp; bounds) <span class="keyword">const</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">void</span> findSegmentsInBounds(<span class="keyword">const</span> Node&amp; node, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keyword">const</span> physx::PxBounds3&amp; bounds) <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> findSegmentsPlaneIntersected(<span class="keyword">const</span> Node&amp; node, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; callback, <span class="keyword">const</span> physx::PxPlane&amp; plane) <span class="keyword">const</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> fillDebugBuffer(<span class="keyword">const</span> Node&amp; node, <span class="keywordtype">int</span> currentDepth, <span class="keywordtype">int</span> depth, <span class="keywordtype">bool</span> segments);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; Node* m_root;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;Node&gt;::type</a> m_nodes;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;uint32_t&gt;::type</a> m_indices;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;physx::PxVec3&gt;::type</a> m_points;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">struct </span>Segment</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; physx::PxVec3 p0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; physx::PxVec3 p1;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;Segment&gt;::type</a> m_segments;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">struct </span>BondData</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; uint32_t node0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t node1;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;BondData&gt;::type</a> m_bonds;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;Nv::Blast::DebugLine&gt;::type</a> m_debugLineBuffer;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;char&gt;::type</a> m_scratch;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;};</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree_html_ab45282017b017a1506ffb27c0fc64b07"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_damage_accelerator_a_a_b_b_tree.html#ab45282017b017a1506ffb27c0fc64b07">Nv::Blast::ExtDamageAcceleratorAABBTree::release</a></div><div class="ttdeci">virtual void release() override</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_array_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html">Nv::Blast::Array</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:46</div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_damage_accelerator_internal_8h_source.html b/docs/source_docs/files/_nv_blast_ext_damage_accelerator_internal_8h_source.html
index 9951c03..215d3e5 100755
--- a/docs/source_docs/files/_nv_blast_ext_damage_accelerator_internal_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_damage_accelerator_internal_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_damage_accelerator_inter
<div class="title">NvBlastExtDamageAcceleratorInternal.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_damage_accelerator_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_damage_shaders_8h.html">NvBlastExtDamageShaders.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxBounds3.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html">ExtDamageAcceleratorInternal</a> : <span class="keyword">public</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html"> 43</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc"> 45</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc">bond</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f"> 46</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f">node0</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a"> 47</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a">node1</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html"> 50</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a9af853f688d8664be7c5c45ebc2c5eac"> 53</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a9af853f688d8664be7c5c45ebc2c5eac">ResultCallback</a>(<a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a>* buffer, uint32_t count) :</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_bondBuffer(buffer), m_bondMaxCount(count), m_bondCount(0) {}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a>* bondBuffer, uint32_t count) = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd"> 58</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd">push</a>(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc">bond</a>, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f">node0</a>, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a">node1</a>)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_bondBuffer[m_bondCount].bond = <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc">bond</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_bondBuffer[m_bondCount].node0 = <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f">node0</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_bondBuffer[m_bondCount].node1 = <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a">node1</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_bondCount++;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (m_bondCount == m_bondMaxCount)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; dispatch();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a8a48eaf8899474fd83dcc8f118b35fdd"> 70</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a8a48eaf8899474fd83dcc8f118b35fdd">dispatch</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (m_bondCount)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; processResults(m_bondBuffer, m_bondCount);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_bondCount = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a>* m_bondBuffer;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint32_t m_bondMaxCount;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint32_t m_bondCount;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a61f769b6a99c7296a6e9e8c1fa406bae">findBondCentroidsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#ad5bbd331df47b0b00e909924ee8d3612">findBondSegmentsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a21e5b0f420b38efd4ea32c2545f529b9">findBondSegmentsPlaneIntersected</a>(<span class="keyword">const</span> physx::PxPlane&amp; plane, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Non-thread safe! Multiple calls return the same memory.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a2308b5231fddd7d36c483350661cfc53">getImmediateScratch</a>(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_html_a61f769b6a99c7296a6e9e8c1fa406bae"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a61f769b6a99c7296a6e9e8c1fa406bae">Nv::Blast::ExtDamageAcceleratorInternal::findBondCentroidsInBounds</a></div><div class="ttdeci">virtual void findBondCentroidsInBounds(const physx::PxBounds3 &amp;bounds, ResultCallback &amp;resultCallback) const =0</div></div>
+<a href="_nv_blast_ext_damage_accelerator_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_damage_shaders_8h.html">NvBlastExtDamageShaders.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxBounds3.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html">ExtDamageAcceleratorInternal</a> : <span class="keyword">public</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html"> 43</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc"> 45</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc">bond</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f"> 46</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f">node0</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a"> 47</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a">node1</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html"> 50</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a9af853f688d8664be7c5c45ebc2c5eac"> 53</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a9af853f688d8664be7c5c45ebc2c5eac">ResultCallback</a>(<a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a>* buffer, uint32_t count) :</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_bondBuffer(buffer), m_bondMaxCount(count), m_bondCount(0) {}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a>* bondBuffer, uint32_t count) = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd"> 58</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd">push</a>(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc">bond</a>, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f">node0</a>, uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a">node1</a>)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_bondBuffer[m_bondCount].bond = <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a5b087e794ae476d5e7fa5615cd4924cc">bond</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_bondBuffer[m_bondCount].node0 = <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#a2ce3735de775383c36e19371092c747f">node0</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_bondBuffer[m_bondCount].node1 = <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html#aeea533a99eaf2559dc83d002d876356a">node1</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_bondCount++;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (m_bondCount == m_bondMaxCount)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; dispatch();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a8a48eaf8899474fd83dcc8f118b35fdd"> 70</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a8a48eaf8899474fd83dcc8f118b35fdd">dispatch</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (m_bondCount)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; processResults(m_bondBuffer, m_bondCount);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_bondCount = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">QueryBondData</a>* m_bondBuffer;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint32_t m_bondMaxCount;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint32_t m_bondCount;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a61f769b6a99c7296a6e9e8c1fa406bae">findBondCentroidsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#ad5bbd331df47b0b00e909924ee8d3612">findBondSegmentsInBounds</a>(<span class="keyword">const</span> physx::PxBounds3&amp; bounds, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a21e5b0f420b38efd4ea32c2545f529b9">findBondSegmentsPlaneIntersected</a>(<span class="keyword">const</span> physx::PxPlane&amp; plane, <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html">ResultCallback</a>&amp; resultCallback) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Non-thread safe! Multiple calls return the same memory.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a2308b5231fddd7d36c483350661cfc53">getImmediateScratch</a>(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_html_a61f769b6a99c7296a6e9e8c1fa406bae"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html#a61f769b6a99c7296a6e9e8c1fa406bae">Nv::Blast::ExtDamageAcceleratorInternal::findBondCentroidsInBounds</a></div><div class="ttdeci">virtual void findBondCentroidsInBounds(const physx::PxBounds3 &amp;bounds, ResultCallback &amp;resultCallback) const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback_html_a2f67adc4a18c33d2bd50552c6a6688dd"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_result_callback.html#a2f67adc4a18c33d2bd50552c6a6688dd">Nv::Blast::ExtDamageAcceleratorInternal::ResultCallback::push</a></div><div class="ttdeci">void push(uint32_t bond, uint32_t node0, uint32_t node1)</div><div class="ttdef"><b>Definition:</b> NvBlastExtDamageAcceleratorInternal.h:58</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_damage_accelerator_internal.html">Nv::Blast::ExtDamageAcceleratorInternal</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtDamageAcceleratorInternal.h:40</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_damage_accelerator_internal_1_1_query_bond_data.html">Nv::Blast::ExtDamageAcceleratorInternal::QueryBondData</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtDamageAcceleratorInternal.h:43</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_damage_shaders_8h_source.html b/docs/source_docs/files/_nv_blast_ext_damage_shaders_8h_source.html
index d1cdea9..de0c3ea 100755
--- a/docs/source_docs/files/_nv_blast_ext_damage_shaders_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_damage_shaders_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_damage_shaders_8h_source
<div class="title">NvBlastExtDamageShaders.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_damage_shaders_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_debug_render_8h.html">NvBlastDebugRender.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Damage Accelerator </span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_blast_ext_damage_accelerator.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#a74a2c82f3414b4877de8475144a53dfc">release</a>() = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#adf9deedf3f72a68bfa0c95f42c6bba4f">fillDebugRender</a>(<span class="keywordtype">int</span> depth = -1, <span class="keywordtype">bool</span> segments = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a745090a4bc196bb10052e520c1b89cfb">NvBlastExtDamageAcceleratorCreate</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keywordtype">int</span> type);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// Damage Program</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_program_params.html">NvBlastExtProgramParams</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c"> 75</a></span>&#160; <a class="code" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c">NvBlastExtProgramParams</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* desc, <span class="keyword">const</span> <span class="keywordtype">void</span>* material_ = <span class="keyword">nullptr</span>, <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator_ = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : damageDesc(desc), material(material_), accelerator(accelerator_) {}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc"> 78</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc">damageDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12">material</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5"> 80</a></span>&#160; <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5">accelerator</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// Common Material </span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html"> 94</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5"> 96</a></span>&#160; <a class="code" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5">NvBlastExtMaterial</a>() : health(100.f), minDamageThreshold(0.0f), maxDamageThreshold(1.0f) {}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2"> 98</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2">health</a>; </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4"> 99</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4">minDamageThreshold</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b"> 100</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b">maxDamageThreshold</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d"> 112</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d">getNormalizedDamage</a>(<span class="keywordtype">float</span> damageInHealth)<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> damage = health &gt; 0.f ? damageInHealth / health : 1.0f;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> damage &gt; minDamageThreshold ? (damage &lt; maxDamageThreshold ? damage : maxDamageThreshold) : 0.f;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// Point Radial Damage</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html"> 127</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379"> 129</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379">damage</a>; </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#afd4c995f6402ebf1feaff268c7ca849b"> 130</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d"> 131</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d">minRadius</a>; </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc"> 132</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc">maxRadius</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aca9928517ff1e0576182fc836b5ada18">NvBlastExtFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#accb64e480930488ee26ebd81fb6c3f2c">NvBlastExtFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a2572a7635ae8c704de093f4298118fd3">NvBlastExtCutterGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a5ccf8e69bec869268649d62f5c2abba5">NvBlastExtCutterSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">// Capsule Radial Damage</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html"> 155</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html">NvBlastExtCapsuleRadialDamageDesc</a></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc"> 157</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc">damage</a>; </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a5209489ce81ac003f2aa1761ff76e304"> 158</a></span>&#160; <span class="keywordtype">float</span> position0[3]; </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#adc7ab153d9e1710cd8acca68d7005023"> 159</a></span>&#160; <span class="keywordtype">float</span> position1[3]; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5"> 160</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5">minRadius</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28"> 161</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28">maxRadius</a>; </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;};</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#affecdc2dc6d303aa9e58c91cff2f15bb">NvBlastExtCapsuleFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8ec20bdee58db094cd0dbed66aeef543">NvBlastExtCapsuleFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// Shear Damage</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html"> 185</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_shear_damage_desc.html">NvBlastExtShearDamageDesc</a></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2"> 187</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2">damage</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a257c42d51ea53fc4e14b6dad2968cf0c"> 189</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>[3]; </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#ae214121c1283b6e661db615a0512f0a2"> 190</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a"> 192</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a">minRadius</a>; </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946"> 193</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946">maxRadius</a>; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;};</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#af3b06a8cb3772954ebe0acf21c661676">NvBlastExtShearGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8e47e1e1e39dc8d48a0e1b83044786bb">NvBlastExtShearSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// Triangle Intersection Damage</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html"> 214</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html">NvBlastExtTriangleIntersectionDamageDesc</a></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6"> 216</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6">damage</a>; </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06"> 217</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06">position0</a>; </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5"> 218</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5">position1</a>; </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1"> 219</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1">position2</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;};</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a0006878f0a28a1b41d5b4fca3360749e">NvBlastExtTriangleIntersectionGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8bde004919d5a5722ce52d57df7badb8">NvBlastExtTriangleIntersectionSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// Impact Spread</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html"> 247</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html">NvBlastExtImpactSpreadDamageDesc</a></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85"> 249</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85">damage</a>; </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#a4f6ab8c0f2d45d4608dcc45bfa4bbd5f"> 250</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9"> 252</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9">minRadius</a>; </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5"> 253</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5">maxRadius</a>; </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;};</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a833c66948b1187023edfbe4306d4403f">NvBlastExtImpactSpreadGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#adc5d223040aa3947eb4b6e9f59f3bba3">NvBlastExtImpactSpreadSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTDAMAGESHADERS_H</span></div><div class="ttc" id="_nv_blast_ext_damage_shaders_8h_html_aca9928517ff1e0576182fc836b5ada18"><div class="ttname"><a href="_nv_blast_ext_damage_shaders_8h.html#aca9928517ff1e0576182fc836b5ada18">NvBlastExtFalloffGraphShader</a></div><div class="ttdeci">NVBLAST_API void NvBlastExtFalloffGraphShader(NvBlastFractureBuffers *commandBuffers, const NvBlastGraphShaderActor *actor, const void *params)</div></div>
+<a href="_nv_blast_ext_damage_shaders_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTDAMAGESHADERS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_debug_render_8h.html">NvBlastDebugRender.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Damage Accelerator </span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_blast_ext_damage_accelerator.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#a74a2c82f3414b4877de8475144a53dfc">release</a>() = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_debug_buffer.html">Nv::Blast::DebugBuffer</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html#adf9deedf3f72a68bfa0c95f42c6bba4f">fillDebugRender</a>(<span class="keywordtype">int</span> depth = -1, <span class="keywordtype">bool</span> segments = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a745090a4bc196bb10052e520c1b89cfb">NvBlastExtDamageAcceleratorCreate</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset, <span class="keywordtype">int</span> type);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// Damage Program</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_program_params.html">NvBlastExtProgramParams</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c"> 75</a></span>&#160; <a class="code" href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c">NvBlastExtProgramParams</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* desc, <span class="keyword">const</span> <span class="keywordtype">void</span>* material_ = <span class="keyword">nullptr</span>, <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator_ = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : damageDesc(desc), material(material_), accelerator(accelerator_) {}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc"> 78</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a3efc46ea5212a5c4416bd028e3f907bc">damageDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_blast_ext_program_params.html#a6cc35cdab120293adfdc07f51dbf2b12">material</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5"> 80</a></span>&#160; <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="struct_nv_blast_ext_program_params.html#a428b6b1ea36416bd76310b42a67192c5">accelerator</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// Common Material </span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html"> 94</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5"> 96</a></span>&#160; <a class="code" href="struct_nv_blast_ext_material.html#a89d74e66909810438be664da3f42e2d5">NvBlastExtMaterial</a>() : health(100.f), minDamageThreshold(0.0f), maxDamageThreshold(1.0f) {}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2"> 98</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a1d1922ed27c3012efa2e9c3418636cb2">health</a>; </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4"> 99</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#aeeb4e2d2b81e234e12b9e627eb6cb1b4">minDamageThreshold</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b"> 100</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#ade63b21c45e8705b20e65c202891762b">maxDamageThreshold</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d"> 112</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_material.html#a2c68418aade662c005e3890a1d073d0d">getNormalizedDamage</a>(<span class="keywordtype">float</span> damageInHealth)<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> damage = health &gt; 0.f ? damageInHealth / health : 1.0f;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> damage &gt; minDamageThreshold ? (damage &lt; maxDamageThreshold ? damage : maxDamageThreshold) : 0.f;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// Point Radial Damage</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html"> 127</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_radial_damage_desc.html">NvBlastExtRadialDamageDesc</a></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379"> 129</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a2b8469219b6615b208b5022a6fe27379">damage</a>; </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#afd4c995f6402ebf1feaff268c7ca849b"> 130</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d"> 131</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#af3546b34798c8d8f97facb157f44a35d">minRadius</a>; </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc"> 132</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_radial_damage_desc.html#a4cc2f97bb0d5288196c18bc85985f3bc">maxRadius</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#aca9928517ff1e0576182fc836b5ada18">NvBlastExtFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#accb64e480930488ee26ebd81fb6c3f2c">NvBlastExtFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a2572a7635ae8c704de093f4298118fd3">NvBlastExtCutterGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a5ccf8e69bec869268649d62f5c2abba5">NvBlastExtCutterSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">// Capsule Radial Damage</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html"> 155</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html">NvBlastExtCapsuleRadialDamageDesc</a></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc"> 157</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#aba7a77e35ba6b376e40b8594cd5d25bc">damage</a>; </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a5209489ce81ac003f2aa1761ff76e304"> 158</a></span>&#160; <span class="keywordtype">float</span> position0[3]; </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#adc7ab153d9e1710cd8acca68d7005023"> 159</a></span>&#160; <span class="keywordtype">float</span> position1[3]; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5"> 160</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#ae879eff0b48fe6d97667c7339c12d3c5">minRadius</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28"> 161</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_capsule_radial_damage_desc.html#a2a686d6981558343b08268d958fa8b28">maxRadius</a>; </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;};</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#affecdc2dc6d303aa9e58c91cff2f15bb">NvBlastExtCapsuleFalloffGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8ec20bdee58db094cd0dbed66aeef543">NvBlastExtCapsuleFalloffSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// Shear Damage</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html"> 185</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_shear_damage_desc.html">NvBlastExtShearDamageDesc</a></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2"> 187</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a72f2f98168be1a777197eefefe49aef2">damage</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a257c42d51ea53fc4e14b6dad2968cf0c"> 189</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>[3]; </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#ae214121c1283b6e661db615a0512f0a2"> 190</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a"> 192</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a5a5b8cbdce8ee01e223ac81bf11ff35a">minRadius</a>; </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946"> 193</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_shear_damage_desc.html#a7c5a12680fd2f8eae33a45b2a6e57946">maxRadius</a>; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;};</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#af3b06a8cb3772954ebe0acf21c661676">NvBlastExtShearGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8e47e1e1e39dc8d48a0e1b83044786bb">NvBlastExtShearSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// Triangle Intersection Damage</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html"> 214</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html">NvBlastExtTriangleIntersectionDamageDesc</a></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6"> 216</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a05f639df7fe680ee1dc98edda4ad4fa6">damage</a>; </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06"> 217</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#a2ce313d5190f2b2705abcddce4c56d06">position0</a>; </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5"> 218</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#ac4532a1c00e85c345d54beff07d61da5">position1</a>; </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1"> 219</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_blast_ext_triangle_intersection_damage_desc.html#af4da706fc0cb7a98c8fb30ef4bd2f4c1">position2</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;};</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a0006878f0a28a1b41d5b4fca3360749e">NvBlastExtTriangleIntersectionGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a8bde004919d5a5722ce52d57df7badb8">NvBlastExtTriangleIntersectionSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// Impact Spread</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html"> 247</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html">NvBlastExtImpactSpreadDamageDesc</a></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85"> 249</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#ac74f4f9446d9ad9c4a21fbd6e13d7b85">damage</a>; </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#a4f6ab8c0f2d45d4608dcc45bfa4bbd5f"> 250</a></span>&#160; <span class="keywordtype">float</span> position[3]; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9"> 252</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aeef3b64563225c426a633f48faf7a9a9">minRadius</a>; </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5"> 253</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_ext_impact_spread_damage_desc.html#aa5f0e610dad36b95f998e58437f8e6e5">maxRadius</a>; </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;};</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#a833c66948b1187023edfbe4306d4403f">NvBlastExtImpactSpreadGraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_damage_shaders_8h.html#adc5d223040aa3947eb4b6e9f59f3bba3">NvBlastExtImpactSpreadSubgraphShader</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* params);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTDAMAGESHADERS_H</span></div><div class="ttc" id="_nv_blast_ext_damage_shaders_8h_html_aca9928517ff1e0576182fc836b5ada18"><div class="ttname"><a href="_nv_blast_ext_damage_shaders_8h.html#aca9928517ff1e0576182fc836b5ada18">NvBlastExtFalloffGraphShader</a></div><div class="ttdeci">NVBLAST_API void NvBlastExtFalloffGraphShader(NvBlastFractureBuffers *commandBuffers, const NvBlastGraphShaderActor *actor, const void *params)</div></div>
<div class="ttc" id="struct_nv_blast_ext_program_params_html_aa445f80ac32f117dc11c1271e538c92c"><div class="ttname"><a href="struct_nv_blast_ext_program_params.html#aa445f80ac32f117dc11c1271e538c92c">NvBlastExtProgramParams::NvBlastExtProgramParams</a></div><div class="ttdeci">NvBlastExtProgramParams(const void *desc, const void *material_=nullptr, NvBlastExtDamageAccelerator *accelerator_=nullptr)</div><div class="ttdef"><b>Definition:</b> NvBlastExtDamageShaders.h:75</div></div>
<div class="ttc" id="_nv_blast_ext_damage_shaders_8h_html_a833c66948b1187023edfbe4306d4403f"><div class="ttname"><a href="_nv_blast_ext_damage_shaders_8h.html#a833c66948b1187023edfbe4306d4403f">NvBlastExtImpactSpreadGraphShader</a></div><div class="ttdeci">NVBLAST_API void NvBlastExtImpactSpreadGraphShader(NvBlastFractureBuffers *commandBuffers, const NvBlastGraphShaderActor *actor, const void *params)</div></div>
<div class="ttc" id="struct_nv_blast_graph_shader_actor_html"><div class="ttname"><a href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:491</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_8h_source.html
index 56b871d..a22d747 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_8h_source.html'
<div class="title">NvBlastExtExporter.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html"> 44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c"> 46</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c">name</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4"> 47</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4">diffuse_tex</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5">asset</a>; <span class="comment">//Blast asset</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34"> 54</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34">positionsCount</a>; <span class="comment">//Number of positions</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b">normalsCount</a>; <span class="comment">//Number of normals</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a">uvsCount</a>; <span class="comment">//Number of textures uv</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563"> 60</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563">positions</a>; <span class="comment">//Array of positions</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8"> 62</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8">normals</a>; <span class="comment">// Array of normals</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a"> 64</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a">uvs</a>; <span class="comment">// Array of textures uv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc"> 66</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc">meshCount</a>; <span class="comment">//Number of meshes (chunks)</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5">submeshCount</a>; <span class="comment">//Number of submeshes</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d">submeshMats</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3"> 78</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3">submeshOffsets</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621"> 80</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621">posIndex</a>; <span class="comment">//Array of position indices</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0"> 82</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0">normIndex</a>; <span class="comment">//Array of normals indices</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975"> 84</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975">texIndex</a>; <span class="comment">//Array of texture indices</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3"> 92</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">hullsOffsets</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373"> 94</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373">hulls</a>; <span class="comment">//Array of pointers to hull for all meshes</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> Load from the specified file path</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> loadFromFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> uint32_t getVerticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> uint32_t getIndicesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getPositionArray() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getNormalsArray() = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* getUvArray() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t* getMaterialIds() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> int32_t* getSmoothingGroups() = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getMaterialName(int32_t <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> int32_t getMaterialCount() = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexArray() = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isCollisionLoaded() = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t getCollision(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>**&amp; hulls) = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;};</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html"> 187</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">IFbxFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneInfluences(uint32_t*&amp; out) = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneCount() = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;};</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html"> 208</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> saveToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorIndex(int32_t index) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;};</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">Nv::Blast::IMeshFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#ae38d259688a8b5074189938d60dedfe2">NvBlastExtExporterCreateObjFileReader</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">Nv::Blast::IFbxFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a302f46e929b1cc4ac3b8fbc77270515a">NvBlastExtExporterCreateFbxFileReader</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a7b6a3dd6fc49b09064b457596a3b0526">NvBlastExtExporterCreateObjFileWriter</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#abeabdaf317cf004af21fb7a7f4937658">NvBlastExtExporterCreateFbxFileWriter</a>(<span class="keywordtype">bool</span> outputFBXAscii = <span class="keyword">false</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTER_H</span></div><div class="ttc" id="_nv_blast_ext_exporter_8h_html_abeabdaf317cf004af21fb7a7f4937658"><div class="ttname"><a href="_nv_blast_ext_exporter_8h.html#abeabdaf317cf004af21fb7a7f4937658">NvBlastExtExporterCreateFbxFileWriter</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::IMeshFileWriter * NvBlastExtExporterCreateFbxFileWriter(bool outputFBXAscii=false)</div></div>
+<a href="_nv_blast_ext_exporter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html"> 44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c"> 46</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a1c3b9c693c653cb2bd4e874dd9b9b53c">name</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4"> 47</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_nv_1_1_blast_1_1_material.html#a0f54cfda76aed2f915d304fb509426e4">diffuse_tex</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7f7c8fb6f3d9f53bf3deef296a620fe5">asset</a>; <span class="comment">//Blast asset</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34"> 54</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a1f65943048a8a5091e3a518ad33ffa34">positionsCount</a>; <span class="comment">//Number of positions</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a2fdc2eb1919de073682ef56696ed987b">normalsCount</a>; <span class="comment">//Number of normals</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0deee2a8bd5930e7289a361ec9c3465a">uvsCount</a>; <span class="comment">//Number of textures uv</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563"> 60</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4ee43e0e73096445b803c7e8ffca7563">positions</a>; <span class="comment">//Array of positions</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8"> 62</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac81eb57f0c73620214e5719051c635c8">normals</a>; <span class="comment">// Array of normals</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a"> 64</a></span>&#160; <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ab96017bbb6617a6276b2f8b60238a44a">uvs</a>; <span class="comment">// Array of textures uv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc"> 66</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abe4f127b644d544d86d7d91039e008cc">meshCount</a>; <span class="comment">//Number of meshes (chunks)</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5"> 68</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a8186645cb97a75ddf9c5d01c26929aa5">submeshCount</a>; <span class="comment">//Number of submeshes</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_material.html">Material</a>* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a233081f899ff4a0f41dd5964d816cd1d">submeshMats</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3"> 78</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#ac5da07eb5e955933b2a66172086ca1e3">submeshOffsets</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621"> 80</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#af4f59c67fa80d8d885279ad6baaf4621">posIndex</a>; <span class="comment">//Array of position indices</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0"> 82</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a4e60dfee2036e0d6147e17978f8f8ec0">normIndex</a>; <span class="comment">//Array of normals indices</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975"> 84</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a7492221e24b7476226c98c09a3c9e975">texIndex</a>; <span class="comment">//Array of texture indices</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3"> 92</a></span>&#160; uint32_t* <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">hullsOffsets</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373"> 94</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#abd261e53e4fdcb448336643a9c0ee373">hulls</a>; <span class="comment">//Array of pointers to hull for all meshes</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> Load from the specified file path</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> loadFromFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> uint32_t getVerticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> uint32_t getIndicesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getPositionArray() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* getNormalsArray() = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* getUvArray() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> int32_t* getMaterialIds() = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> int32_t* getSmoothingGroups() = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* getMaterialName(int32_t <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> int32_t getMaterialCount() = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexArray() = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isCollisionLoaded() = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t getCollision(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>**&amp; hulls) = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;};</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html"> 187</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">IFbxFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneInfluences(uint32_t*&amp; out) = 0;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> uint32_t getBoneCount() = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;};</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html"> 208</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> saveToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorIndex(int32_t index) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;};</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">Nv::Blast::IMeshFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#ae38d259688a8b5074189938d60dedfe2">NvBlastExtExporterCreateObjFileReader</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">Nv::Blast::IFbxFileReader</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a302f46e929b1cc4ac3b8fbc77270515a">NvBlastExtExporterCreateFbxFileReader</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#a7b6a3dd6fc49b09064b457596a3b0526">NvBlastExtExporterCreateObjFileWriter</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">Nv::Blast::IMeshFileWriter</a>* <a class="code" href="_nv_blast_ext_exporter_8h.html#abeabdaf317cf004af21fb7a7f4937658">NvBlastExtExporterCreateFbxFileWriter</a>(<span class="keywordtype">bool</span> outputFBXAscii = <span class="keyword">false</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTER_H</span></div><div class="ttc" id="_nv_blast_ext_exporter_8h_html_abeabdaf317cf004af21fb7a7f4937658"><div class="ttname"><a href="_nv_blast_ext_exporter_8h.html#abeabdaf317cf004af21fb7a7f4937658">NvBlastExtExporterCreateFbxFileWriter</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::IMeshFileWriter * NvBlastExtExporterCreateFbxFileWriter(bool outputFBXAscii=false)</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_exporter_mesh_data_html_a0ce1720fca4452f6fc3df794ca659ec3"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html#a0ce1720fca4452f6fc3df794ca659ec3">Nv::Blast::ExporterMeshData::hullsOffsets</a></div><div class="ttdeci">uint32_t * hullsOffsets</div><div class="ttdef"><b>Definition:</b> NvBlastExtExporter.h:92</div></div>
<div class="ttc" id="_nv_blast_ext_exporter_8h_html_ae38d259688a8b5074189938d60dedfe2"><div class="ttname"><a href="_nv_blast_ext_exporter_8h.html#ae38d259688a8b5074189938d60dedfe2">NvBlastExtExporterCreateObjFileReader</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::IMeshFileReader * NvBlastExtExporterCreateObjFileReader()</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_fbx_reader_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_fbx_reader_8h_source.html
index edd144d..6244a47 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_fbx_reader_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_fbx_reader_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_fbx_reader_8h_s
<div class="title">NvBlastExtExporterFbxReader.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_fbx_reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERFBXREADER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERFBXREADER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;fbxsdk.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_reader.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html">FbxFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">IFbxFileReader</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">struct </span>CollisionHullImpl : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">//copy from existing</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; CollisionHullImpl(<span class="keyword">const</span> CollisionHullImpl&amp; other) : CollisionHullImpl()</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; copyFrom(other);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; CollisionHullImpl()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; pointsCount = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; indicesCount = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; polygonDataCount = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; points = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; indices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; polygonData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; CollisionHullImpl(CollisionHullImpl&amp;&amp; other)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; operator=(std::move(other));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; CollisionHullImpl&amp; operator=(<span class="keyword">const</span> CollisionHullImpl&amp; other)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (&amp;other != <span class="keyword">this</span>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">delete</span>[] points;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">delete</span>[] indices;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">delete</span>[] polygonData;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; copyFrom(other);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; CollisionHullImpl&amp; operator=(CollisionHullImpl&amp;&amp; other)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (&amp;other != <span class="keyword">this</span>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; pointsCount = other.pointsCount;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; indicesCount = other.indicesCount;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; polygonDataCount = other.polygonDataCount;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; points = other.points;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; indices = other.indices;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; polygonData = other.polygonData;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; other.pointsCount = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; other.indicesCount = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; other.polygonDataCount = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; other.points = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; other.indices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; other.polygonData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> ~CollisionHullImpl()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">delete</span>[] points;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">delete</span>[] indices;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">delete</span>[] polygonData;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">void</span> copyFrom(<span class="keyword">const</span> CollisionHullImpl&amp; other)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; pointsCount = other.pointsCount;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; indicesCount = other.indicesCount;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; polygonDataCount = other.polygonDataCount;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; points = <span class="keyword">new</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>[pointsCount];</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; indices = <span class="keyword">new</span> uint32_t[indicesCount];</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; polygonData = <span class="keyword">new</span> <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">Nv::Blast::HullPolygon</a>[polygonDataCount];</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; memcpy(points, other.points, <span class="keyword">sizeof</span>(points[0]) * pointsCount);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; memcpy(indices, other.indices, <span class="keyword">sizeof</span>(indices[0]) * indicesCount);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; memcpy(polygonData, other.polygonData, <span class="keyword">sizeof</span>(polygonData[0]) * polygonDataCount);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a31904d1c4d932f95c6a242831016b231">FbxFileReader</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a63da4abe8dab42729ce769e8f72fd5f6">~FbxFileReader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a3c512dbde1e2cfd466a42850c94e7a29">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> Load from the specified file path, returning a mesh or nullptr if failed</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#aa2b88c8aab38b57cd55d28623627bd28">loadFromFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) <span class="keyword">override</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ae1bb7475e07cf828e618b7e6446f45e3"> 136</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ae1bb7475e07cf828e618b7e6446f45e3">getVerticesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> mVertexPositions.size();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a1e0b5573a23da31c4b4c1ac1990129d4"> 141</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a1e0b5573a23da31c4b4c1ac1990129d4">getIndicesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> mIndices.size();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a92f6539b6257a8b3c92ee2f0f037e3e7">isCollisionLoaded</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a9bc0b072410dd80c48c3ad28ac9cc310">getCollision</a>(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; hulls) <span class="keyword">override</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a24f64663c32ae62564ab23d7a1f92e4f">getBoneInfluences</a>(uint32_t*&amp; out) <span class="keyword">override</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a7ec2ac13da39a7e902a9a067cb3fa77e">getBoneCount</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a7b138f807bb9e16cbf954a490facf8fd">getPositionArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a757645cea35138c1d8e4587c5deaa9b2">getNormalsArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ae47dd323cc88ab1c14191943fb1d7b56">getUvArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a6420cca9262138762b19223b4696c060">getIndexArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#afa8040e8e033ce842ac4c97940ed693d">getMaterialIds</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ad245d1547ce1cb4bac5e52d7d693168e">getSmoothingGroups</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a29eb02a4492a741c280401ad41e58ab6">getMaterialName</a>(int32_t <span class="keywordtype">id</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#afe756b47f2fde0d4933b4bc4f8d10b79">getMaterialCount</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t mMeshCount;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; uint32_t mChunkCount;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; std::vector&lt;uint32_t&gt; mHullsOffset;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; std::vector&lt;CollisionHullImpl&gt; mHulls;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; std::vector&lt;uint32_t&gt; mVertexToContainingChunkMap;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::multimap&lt;uint32_t, FbxNode*&gt; mCollisionNodes;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; std::vector&lt;NvcVec3&gt; mVertexPositions;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::vector&lt;NvcVec3&gt; mVertexNormals;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; std::vector&lt;NvcVec2&gt; mVertexUv;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; std::vector&lt;uint32_t&gt; mIndices;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; std::vector&lt;int32_t&gt; mSmoothingGroups;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; std::vector&lt;int32_t&gt; mMaterialIds;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; std::vector&lt;std::string&gt; mMaterialNames; </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; FbxAMatrix getTransformForNode(FbxNode* node);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> getFbxMeshes(FbxDisplayLayer* collisionDisplayLayer, FbxNode* node, std::vector&lt;FbxNode*&gt;&amp; meshNodes);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">bool</span> getCollisionInternal();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordtype">bool</span> getBoneInfluencesInternal(FbxMesh* meshNode);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;};</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_reader_html_a92f6539b6257a8b3c92ee2f0f037e3e7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a92f6539b6257a8b3c92ee2f0f037e3e7">Nv::Blast::FbxFileReader::isCollisionLoaded</a></div><div class="ttdeci">virtual bool isCollisionLoaded() override</div></div>
+<a href="_nv_blast_ext_exporter_fbx_reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERFBXREADER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERFBXREADER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;fbxsdk.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_reader.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html">FbxFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_fbx_file_reader.html">IFbxFileReader</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">struct </span>CollisionHullImpl : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">//copy from existing</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; CollisionHullImpl(<span class="keyword">const</span> CollisionHullImpl&amp; other) : CollisionHullImpl()</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; copyFrom(other);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; CollisionHullImpl()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; pointsCount = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; indicesCount = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; polygonDataCount = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; points = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; indices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; polygonData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; CollisionHullImpl(CollisionHullImpl&amp;&amp; other)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; operator=(std::move(other));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; CollisionHullImpl&amp; operator=(<span class="keyword">const</span> CollisionHullImpl&amp; other)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (&amp;other != <span class="keyword">this</span>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">delete</span>[] points;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">delete</span>[] indices;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">delete</span>[] polygonData;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; copyFrom(other);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; CollisionHullImpl&amp; operator=(CollisionHullImpl&amp;&amp; other)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (&amp;other != <span class="keyword">this</span>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; pointsCount = other.pointsCount;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; indicesCount = other.indicesCount;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; polygonDataCount = other.polygonDataCount;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; points = other.points;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; indices = other.indices;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; polygonData = other.polygonData;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; other.pointsCount = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; other.indicesCount = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; other.polygonDataCount = 0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; other.points = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; other.indices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; other.polygonData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> ~CollisionHullImpl()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">delete</span>[] points;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">delete</span>[] indices;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">delete</span>[] polygonData;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">void</span> copyFrom(<span class="keyword">const</span> CollisionHullImpl&amp; other)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; pointsCount = other.pointsCount;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; indicesCount = other.indicesCount;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; polygonDataCount = other.polygonDataCount;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; points = <span class="keyword">new</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>[pointsCount];</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; indices = <span class="keyword">new</span> uint32_t[indicesCount];</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; polygonData = <span class="keyword">new</span> <a class="code" href="struct_nv_1_1_blast_1_1_hull_polygon.html">Nv::Blast::HullPolygon</a>[polygonDataCount];</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; memcpy(points, other.points, <span class="keyword">sizeof</span>(points[0]) * pointsCount);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; memcpy(indices, other.indices, <span class="keyword">sizeof</span>(indices[0]) * indicesCount);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; memcpy(polygonData, other.polygonData, <span class="keyword">sizeof</span>(polygonData[0]) * polygonDataCount);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a31904d1c4d932f95c6a242831016b231">FbxFileReader</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a63da4abe8dab42729ce769e8f72fd5f6">~FbxFileReader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a3c512dbde1e2cfd466a42850c94e7a29">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> Load from the specified file path, returning a mesh or nullptr if failed</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#aa2b88c8aab38b57cd55d28623627bd28">loadFromFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) <span class="keyword">override</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ae1bb7475e07cf828e618b7e6446f45e3"> 136</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ae1bb7475e07cf828e618b7e6446f45e3">getVerticesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> mVertexPositions.size();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a1e0b5573a23da31c4b4c1ac1990129d4"> 141</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a1e0b5573a23da31c4b4c1ac1990129d4">getIndicesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> mIndices.size();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a92f6539b6257a8b3c92ee2f0f037e3e7">isCollisionLoaded</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a9bc0b072410dd80c48c3ad28ac9cc310">getCollision</a>(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; hulls) <span class="keyword">override</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a24f64663c32ae62564ab23d7a1f92e4f">getBoneInfluences</a>(uint32_t*&amp; out) <span class="keyword">override</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a7ec2ac13da39a7e902a9a067cb3fa77e">getBoneCount</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a7b138f807bb9e16cbf954a490facf8fd">getPositionArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a757645cea35138c1d8e4587c5deaa9b2">getNormalsArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ae47dd323cc88ab1c14191943fb1d7b56">getUvArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a6420cca9262138762b19223b4696c060">getIndexArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#afa8040e8e033ce842ac4c97940ed693d">getMaterialIds</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#ad245d1547ce1cb4bac5e52d7d693168e">getSmoothingGroups</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a29eb02a4492a741c280401ad41e58ab6">getMaterialName</a>(int32_t <span class="keywordtype">id</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_reader.html#afe756b47f2fde0d4933b4bc4f8d10b79">getMaterialCount</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t mMeshCount;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; uint32_t mChunkCount;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; std::vector&lt;uint32_t&gt; mHullsOffset;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; std::vector&lt;CollisionHullImpl&gt; mHulls;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; std::vector&lt;uint32_t&gt; mVertexToContainingChunkMap;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::multimap&lt;uint32_t, FbxNode*&gt; mCollisionNodes;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; std::vector&lt;NvcVec3&gt; mVertexPositions;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::vector&lt;NvcVec3&gt; mVertexNormals;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; std::vector&lt;NvcVec2&gt; mVertexUv;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; std::vector&lt;uint32_t&gt; mIndices;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; std::vector&lt;int32_t&gt; mSmoothingGroups;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; std::vector&lt;int32_t&gt; mMaterialIds;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; std::vector&lt;std::string&gt; mMaterialNames; </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; FbxAMatrix getTransformForNode(FbxNode* node);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> getFbxMeshes(FbxDisplayLayer* collisionDisplayLayer, FbxNode* node, std::vector&lt;FbxNode*&gt;&amp; meshNodes);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">bool</span> getCollisionInternal();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordtype">bool</span> getBoneInfluencesInternal(FbxMesh* meshNode);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;};</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_reader_html_a92f6539b6257a8b3c92ee2f0f037e3e7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a92f6539b6257a8b3c92ee2f0f037e3e7">Nv::Blast::FbxFileReader::isCollisionLoaded</a></div><div class="ttdeci">virtual bool isCollisionLoaded() override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_reader_html_a63da4abe8dab42729ce769e8f72fd5f6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a63da4abe8dab42729ce769e8f72fd5f6">Nv::Blast::FbxFileReader::~FbxFileReader</a></div><div class="ttdeci">~FbxFileReader()=default</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_reader_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_reader.html">Nv::Blast::FbxFileReader</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterFbxReader.h:45</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_reader_html_a24f64663c32ae62564ab23d7a1f92e4f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_reader.html#a24f64663c32ae62564ab23d7a1f92e4f">Nv::Blast::FbxFileReader::getBoneInfluences</a></div><div class="ttdeci">virtual uint32_t getBoneInfluences(uint32_t *&amp;out) override</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_fbx_utils_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_fbx_utils_8h_source.html
index 061b995..ec77945 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_fbx_utils_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_fbx_utils_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_fbx_utils_8h_so
<div class="title">NvBlastExtExporterFbxUtils.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_fbx_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERFBXUTILS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERFBXUTILS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;fbxsdk.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">struct </span>Vertex;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_fbx_utils.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_fbx_utils.html">FbxUtils</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> VertexToFbx(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>&amp; vert, FbxVector4&amp; outVertex, FbxVector4&amp; outNormal, FbxVector2&amp; outUV);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> NvcVec3ToFbx(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; inVector, FbxVector4&amp; outVector);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> NvcVec2ToFbx(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; inVector, FbxVector2&amp; outVector);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> FbxAxisSystem getBlastFBXAxisSystem();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> FbxSystemUnit getBlastFBXUnit();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> std::string FbxAxisSystemToString(<span class="keyword">const</span> FbxAxisSystem&amp; axisSystem);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> std::string FbxSystemUnitToString(<span class="keyword">const</span> FbxSystemUnit&amp; systemUnit);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">//returns UINT32_MAX if not a chunk</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> uint32_t getChunkIndexForNode(FbxNode* node, uint32_t* outParentChunkIndex = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">//Search using the old naming </span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">static</span> uint32_t getChunkIndexForNodeBackwardsCompatible(FbxNode* node, uint32_t* outParentChunkIndex = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">static</span> std::string getChunkNodeName(uint32_t chunkIndex);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">static</span> std::string getCollisionGeometryLayerName();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">static</span> std::string getRenderGeometryLayerName();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTERFBXUTILS_H</span></div><div class="ttc" id="struct_nvc_vec2_html"><div class="ttname"><a href="struct_nvc_vec2.html">NvcVec2</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:43</div></div>
+<a href="_nv_blast_ext_exporter_fbx_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERFBXUTILS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERFBXUTILS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;fbxsdk.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">struct </span>Vertex;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_fbx_utils.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_fbx_utils.html">FbxUtils</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> VertexToFbx(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>&amp; vert, FbxVector4&amp; outVertex, FbxVector4&amp; outNormal, FbxVector2&amp; outUV);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> NvcVec3ToFbx(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; inVector, FbxVector4&amp; outVector);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> NvcVec2ToFbx(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; inVector, FbxVector2&amp; outVector);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> FbxAxisSystem getBlastFBXAxisSystem();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> FbxSystemUnit getBlastFBXUnit();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> std::string FbxAxisSystemToString(<span class="keyword">const</span> FbxAxisSystem&amp; axisSystem);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> std::string FbxSystemUnitToString(<span class="keyword">const</span> FbxSystemUnit&amp; systemUnit);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">//returns UINT32_MAX if not a chunk</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> uint32_t getChunkIndexForNode(FbxNode* node, uint32_t* outParentChunkIndex = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">//Search using the old naming </span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">static</span> uint32_t getChunkIndexForNodeBackwardsCompatible(FbxNode* node, uint32_t* outParentChunkIndex = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">static</span> std::string getChunkNodeName(uint32_t chunkIndex);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">static</span> std::string getCollisionGeometryLayerName();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">static</span> std::string getRenderGeometryLayerName();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTERFBXUTILS_H</span></div><div class="ttc" id="struct_nvc_vec2_html"><div class="ttname"><a href="struct_nvc_vec2.html">NvcVec2</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:43</div></div>
<div class="ttc" id="class_fbx_utils_html"><div class="ttname"><a href="class_fbx_utils.html">FbxUtils</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterFbxUtils.h:44</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_vertex_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:67</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_fbx_writer_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_fbx_writer_8h_source.html
index eb44ca3..34b6166 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_fbx_writer_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_fbx_writer_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_fbx_writer_8h_s
<div class="title">NvBlastExtExporterFbxWriter.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_fbx_writer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERFBXWRITER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERFBXWRITER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacefbxsdk.html"> 37</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacefbxsdk.html">fbxsdk</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">class </span>FbxScene;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">class </span>FbxNode;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">class </span>FbxMesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>FbxSkin;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>FbxManager;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">class </span>FbxSurfaceMaterial;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">class </span>FbxDisplayLayer;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">struct </span>Triangle;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_writer.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fbx_file_writer.html">FbxFileWriter</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_writer.html">FbxFileWriter</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">//~FbxFileWriter() = default;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; fbxsdk::FbxScene* getScene();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> saveToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) <span class="keyword">override</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorIndex(int32_t index) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_writer.html#a514d9fc24e80c0e4b0c992021a782049"> 99</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_writer.html#a514d9fc24e80c0e4b0c992021a782049">bOutputFBXAscii</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::vector&lt;fbxsdk::FbxSurfaceMaterial*&gt; mMaterials;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; fbxsdk::FbxScene* mScene;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; fbxsdk::FbxDisplayLayer* mRenderLayer;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">//TODO we should track for every memory allocation and deallocate it not only for sdkManager</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::shared_ptr&lt;fbxsdk::FbxManager&gt; sdkManager;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::map&lt;uint32_t, fbxsdk::FbxNode*&gt; chunkNodes;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; std::map&lt;uint32_t, NvcVec3&gt; worldChunkPivots;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">bool</span> appendNonSkinnedMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> appendNonSkinnedMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">void</span> createMaterials(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> createMaterials(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> appendCollisionMesh(uint32_t meshCount, uint32_t* offsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; uint32_t addCollisionHulls(uint32_t chunkIndex, fbxsdk::FbxDisplayLayer* displayLayer, fbxsdk::FbxNode* parentNode, uint32_t hullsCount, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t createChunkRecursive(uint32_t currentCpIdx, uint32_t chunkIndex, fbxsdk::FbxNode *meshNode, fbxsdk::FbxNode* parentNode, fbxsdk::FbxSkin* skin, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; uint32_t createChunkRecursive(uint32_t currentCpIdx, uint32_t chunkIndex, fbxsdk::FbxNode *meshNode, fbxsdk::FbxNode* parentNode, fbxsdk::FbxSkin* skin, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">void</span> createChunkRecursiveNonSkinned(<span class="keyword">const</span> std::string&amp; meshName, uint32_t chunkIndex, fbxsdk::FbxNode* parentNode,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> std::vector&lt;fbxsdk::FbxSurfaceMaterial*&gt;&amp; materials, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> createChunkRecursiveNonSkinned(<span class="keyword">const</span> std::string&amp; meshName, uint32_t chunkIndex, fbxsdk::FbxNode* parentNode,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> std::vector&lt;fbxsdk::FbxSurfaceMaterial*&gt;&amp; materials, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> addControlPoints(fbxsdk::FbxMesh* mesh, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> addBindPose();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> generateSmoothingGroups(fbxsdk::FbxMesh* mesh, FbxSkin* skin);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> removeDuplicateControlPoints(fbxsdk::FbxMesh* mesh, FbxSkin* skin);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; int32_t mInteriorIndex;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTEXPORTERFBXWRITER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_writer_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_writer.html">Nv::Blast::FbxFileWriter</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterFbxWriter.h:58</div></div>
+<a href="_nv_blast_ext_exporter_fbx_writer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERFBXWRITER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERFBXWRITER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacefbxsdk.html"> 37</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacefbxsdk.html">fbxsdk</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">class </span>FbxScene;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">class </span>FbxNode;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">class </span>FbxMesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">class </span>FbxSkin;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>FbxManager;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">class </span>FbxSurfaceMaterial;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">class </span>FbxDisplayLayer;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">struct </span>Triangle;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_writer.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fbx_file_writer.html">FbxFileWriter</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_writer.html">FbxFileWriter</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">//~FbxFileWriter() = default;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; fbxsdk::FbxScene* getScene();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> appendMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> saveToFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) <span class="keyword">override</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorIndex(int32_t index) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fbx_file_writer.html#a514d9fc24e80c0e4b0c992021a782049"> 99</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fbx_file_writer.html#a514d9fc24e80c0e4b0c992021a782049">bOutputFBXAscii</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::vector&lt;fbxsdk::FbxSurfaceMaterial*&gt; mMaterials;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; fbxsdk::FbxScene* mScene;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; fbxsdk::FbxDisplayLayer* mRenderLayer;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">//TODO we should track for every memory allocation and deallocate it not only for sdkManager</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::shared_ptr&lt;fbxsdk::FbxManager&gt; sdkManager;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::map&lt;uint32_t, fbxsdk::FbxNode*&gt; chunkNodes;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; std::map&lt;uint32_t, NvcVec3&gt; worldChunkPivots;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">bool</span> appendNonSkinnedMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> appendNonSkinnedMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">void</span> createMaterials(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> createMaterials(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> appendCollisionMesh(uint32_t meshCount, uint32_t* offsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; uint32_t addCollisionHulls(uint32_t chunkIndex, fbxsdk::FbxDisplayLayer* displayLayer, fbxsdk::FbxNode* parentNode, uint32_t hullsCount, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t createChunkRecursive(uint32_t currentCpIdx, uint32_t chunkIndex, fbxsdk::FbxNode *meshNode, fbxsdk::FbxNode* parentNode, fbxsdk::FbxSkin* skin, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; uint32_t createChunkRecursive(uint32_t currentCpIdx, uint32_t chunkIndex, fbxsdk::FbxNode *meshNode, fbxsdk::FbxNode* parentNode, fbxsdk::FbxSkin* skin, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">void</span> createChunkRecursiveNonSkinned(<span class="keyword">const</span> std::string&amp; meshName, uint32_t chunkIndex, fbxsdk::FbxNode* parentNode,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> std::vector&lt;fbxsdk::FbxSurfaceMaterial*&gt;&amp; materials, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> createChunkRecursiveNonSkinned(<span class="keyword">const</span> std::string&amp; meshName, uint32_t chunkIndex, fbxsdk::FbxNode* parentNode,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> std::vector&lt;fbxsdk::FbxSurfaceMaterial*&gt;&amp; materials, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> addControlPoints(fbxsdk::FbxMesh* mesh, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> addBindPose();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> generateSmoothingGroups(fbxsdk::FbxMesh* mesh, FbxSkin* skin);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> removeDuplicateControlPoints(fbxsdk::FbxMesh* mesh, FbxSkin* skin);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; int32_t mInteriorIndex;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTEXPORTERFBXWRITER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fbx_file_writer_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fbx_file_writer.html">Nv::Blast::FbxFileWriter</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterFbxWriter.h:58</div></div>
<div class="ttc" id="_nv_blast_ext_exporter_8h_html"><div class="ttname"><a href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a></div></div>
<div class="ttc" id="namespacefbxsdk_html"><div class="ttname"><a href="namespacefbxsdk.html">fbxsdk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterFbxWriter.h:37</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_collision_hull_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:133</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html
index 98ea4e1..3c9238a 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_json_collision_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_json_collision_
<div class="title">NvBlastExtExporterJsonCollision.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_json_collision_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">IJsonCollisionExporter</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#af744ddab2561e7c141875ccd3b0b7e54">release</a>() = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">writeCollision</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path, uint32_t chunkCount, <span class="keyword">const</span> uint32_t* hullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <span class="keyword">const</span> * hulls) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">Nv::Blast::IJsonCollisionExporter</a>* <a class="code" href="_nv_blast_ext_exporter_json_collision_8h.html#ab9c7fcc8cf6f0a68f93546f3c21b361c">NvBlastExtExporterCreateJsonCollisionExporter</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_i_json_collision_exporter_html_a036a4974af69302ea442baed800c3bbe"><div class="ttname"><a href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">Nv::Blast::IJsonCollisionExporter::writeCollision</a></div><div class="ttdeci">virtual bool writeCollision(const char *path, uint32_t chunkCount, const uint32_t *hullOffsets, const CollisionHull *const *hulls)=0</div></div>
+<a href="_nv_blast_ext_exporter_json_collision_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>CollisionHull;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">IJsonCollisionExporter</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>: </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#af744ddab2561e7c141875ccd3b0b7e54">release</a>() = 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">writeCollision</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path, uint32_t chunkCount, <span class="keyword">const</span> uint32_t* hullOffsets, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* <span class="keyword">const</span> * hulls) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">Nv::Blast::IJsonCollisionExporter</a>* <a class="code" href="_nv_blast_ext_exporter_json_collision_8h.html#ab9c7fcc8cf6f0a68f93546f3c21b361c">NvBlastExtExporterCreateJsonCollisionExporter</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif //NVBLASTEXTEXPORTERJSONCOLLISION_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_i_json_collision_exporter_html_a036a4974af69302ea442baed800c3bbe"><div class="ttname"><a href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html#a036a4974af69302ea442baed800c3bbe">Nv::Blast::IJsonCollisionExporter::writeCollision</a></div><div class="ttdeci">virtual bool writeCollision(const char *path, uint32_t chunkCount, const uint32_t *hullOffsets, const CollisionHull *const *hulls)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_i_json_collision_exporter_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_i_json_collision_exporter.html">Nv::Blast::IJsonCollisionExporter</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterJsonCollision.h:44</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_exporter_json_collision_8h_html_ab9c7fcc8cf6f0a68f93546f3c21b361c"><div class="ttname"><a href="_nv_blast_ext_exporter_json_collision_8h.html#ab9c7fcc8cf6f0a68f93546f3c21b361c">NvBlastExtExporterCreateJsonCollisionExporter</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::IJsonCollisionExporter * NvBlastExtExporterCreateJsonCollisionExporter()</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_obj_reader_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_obj_reader_8h_source.html
index 08925ea..adb19fa 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_obj_reader_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_obj_reader_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_obj_reader_8h_s
<div class="title">NvBlastExtExporterObjReader.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_obj_reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTEROBJREADER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTEROBJREADER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html">ObjFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#ad0bb6f0bece7e9185ba43167ec303ddc">ObjFileReader</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#aac32b2d4a59d2a21db971a93e44ed515">~ObjFileReader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a3a34965574d3fbe9ab2c87c1438da940">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> Load from the specified file path, returning a mesh or nullptr if failed</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a86c73b60d111c3078dee5aa1c5e8196f">loadFromFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) <span class="keyword">override</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#adef540dcf2ff0c54f90a44bd44e27a38"> 55</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#adef540dcf2ff0c54f90a44bd44e27a38">getVerticesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> mVertexPositions.size();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a74864f835a339d96ed14401aaba4e737"> 60</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a74864f835a339d96ed14401aaba4e737">getIndicesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> mIndices.size();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a2a654729f599d89b57cc7aa786e0ade0">isCollisionLoaded</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a01c925f55875fe9d85433bd6ab953d60">getCollision</a>(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; hulls) <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a9c3ec51c8116e8d87449e98f9343839e">getPositionArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a24ed2e4ec3bdbec2cc3279e662eb94d2">getNormalsArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a0c8602219afcb8c73168a36ee87228c5">getUvArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a7b207f2b310fa696848d436f4c8b0c2c">getIndexArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a5e8db96253945dbb3baa036064f6aff4"> 95</a></span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a5e8db96253945dbb3baa036064f6aff4">getMaterialIds</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> mPerFaceMatId.data(); };</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#afdd3100090d81e51a2e5ff97f5b55230"> 100</a></span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#afdd3100090d81e51a2e5ff97f5b55230">getSmoothingGroups</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">nullptr</span>; };</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a4869a7e8d066518cde910559619b11a5"> 105</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a4869a7e8d066518cde910559619b11a5">getMaterialName</a>(int32_t <span class="keywordtype">id</span>)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> mMaterialNames[id].c_str(); }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a166b9ee741b2c887f059d476ee0c17cc"> 110</a></span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a166b9ee741b2c887f059d476ee0c17cc">getMaterialCount</a>() { <span class="keywordflow">return</span> mMaterialNames.size(); };</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; std::vector&lt;NvcVec3&gt; mVertexPositions;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; std::vector&lt;NvcVec3&gt; mVertexNormals;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; std::vector&lt;NvcVec2&gt; mVertexUv;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::vector&lt;uint32_t&gt; mIndices;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::vector&lt;std::string&gt; mMaterialNames;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::vector&lt;int32_t&gt; mPerFaceMatId;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;};</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTEXPORTEROBJREADER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_reader_html_a24ed2e4ec3bdbec2cc3279e662eb94d2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_reader.html#a24ed2e4ec3bdbec2cc3279e662eb94d2">Nv::Blast::ObjFileReader::getNormalsArray</a></div><div class="ttdeci">virtual NvcVec3 * getNormalsArray() override</div></div>
+<a href="_nv_blast_ext_exporter_obj_reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTEROBJREADER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTEROBJREADER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html">ObjFileReader</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_reader.html">IMeshFileReader</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#ad0bb6f0bece7e9185ba43167ec303ddc">ObjFileReader</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#aac32b2d4a59d2a21db971a93e44ed515">~ObjFileReader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a3a34965574d3fbe9ab2c87c1438da940">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> Load from the specified file path, returning a mesh or nullptr if failed</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a86c73b60d111c3078dee5aa1c5e8196f">loadFromFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) <span class="keyword">override</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#adef540dcf2ff0c54f90a44bd44e27a38"> 55</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#adef540dcf2ff0c54f90a44bd44e27a38">getVerticesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> mVertexPositions.size();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a74864f835a339d96ed14401aaba4e737"> 60</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a74864f835a339d96ed14401aaba4e737">getIndicesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> mIndices.size();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a2a654729f599d89b57cc7aa786e0ade0">isCollisionLoaded</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a01c925f55875fe9d85433bd6ab953d60">getCollision</a>(uint32_t*&amp; hullsOffset, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">Nv::Blast::CollisionHull</a>**&amp; hulls) <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a9c3ec51c8116e8d87449e98f9343839e">getPositionArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a24ed2e4ec3bdbec2cc3279e662eb94d2">getNormalsArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a0c8602219afcb8c73168a36ee87228c5">getUvArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a7b207f2b310fa696848d436f4c8b0c2c">getIndexArray</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a5e8db96253945dbb3baa036064f6aff4"> 95</a></span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a5e8db96253945dbb3baa036064f6aff4">getMaterialIds</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> mPerFaceMatId.data(); };</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#afdd3100090d81e51a2e5ff97f5b55230"> 100</a></span>&#160; int32_t* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#afdd3100090d81e51a2e5ff97f5b55230">getSmoothingGroups</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">nullptr</span>; };</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a4869a7e8d066518cde910559619b11a5"> 105</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a4869a7e8d066518cde910559619b11a5">getMaterialName</a>(int32_t <span class="keywordtype">id</span>)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> mMaterialNames[id].c_str(); }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a166b9ee741b2c887f059d476ee0c17cc"> 110</a></span>&#160; int32_t <a class="code" href="class_nv_1_1_blast_1_1_obj_file_reader.html#a166b9ee741b2c887f059d476ee0c17cc">getMaterialCount</a>() { <span class="keywordflow">return</span> mMaterialNames.size(); };</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; std::vector&lt;NvcVec3&gt; mVertexPositions;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; std::vector&lt;NvcVec3&gt; mVertexNormals;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; std::vector&lt;NvcVec2&gt; mVertexUv;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::vector&lt;uint32_t&gt; mIndices;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::vector&lt;std::string&gt; mMaterialNames;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::vector&lt;int32_t&gt; mPerFaceMatId;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;};</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTEXPORTEROBJREADER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_reader_html_a24ed2e4ec3bdbec2cc3279e662eb94d2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_reader.html#a24ed2e4ec3bdbec2cc3279e662eb94d2">Nv::Blast::ObjFileReader::getNormalsArray</a></div><div class="ttdeci">virtual NvcVec3 * getNormalsArray() override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_reader_html_a7b207f2b310fa696848d436f4c8b0c2c"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_reader.html#a7b207f2b310fa696848d436f4c8b0c2c">Nv::Blast::ObjFileReader::getIndexArray</a></div><div class="ttdeci">virtual uint32_t * getIndexArray() override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_reader_html_a4869a7e8d066518cde910559619b11a5"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_reader.html#a4869a7e8d066518cde910559619b11a5">Nv::Blast::ObjFileReader::getMaterialName</a></div><div class="ttdeci">const char * getMaterialName(int32_t id) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterObjReader.h:105</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_reader_html_a2a654729f599d89b57cc7aa786e0ade0"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_reader.html#a2a654729f599d89b57cc7aa786e0ade0">Nv::Blast::ObjFileReader::isCollisionLoaded</a></div><div class="ttdeci">virtual bool isCollisionLoaded() override</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_exporter_obj_writer_8h_source.html b/docs/source_docs/files/_nv_blast_ext_exporter_obj_writer_8h_source.html
index 5bddc6e..c0ea815 100755
--- a/docs/source_docs/files/_nv_blast_ext_exporter_obj_writer_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_exporter_obj_writer_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_exporter_obj_writer_8h_s
<div class="title">NvBlastExtExporterObjWriter.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_exporter_obj_writer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTEROBJWRITER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTEROBJWRITER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_writer.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html">ObjFileWriter</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a1e7247051563470428d3ed7a6c86bfd5"> 49</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a1e7247051563470428d3ed7a6c86bfd5">ObjFileWriter</a>(): mIntSurfaceMatIndex(-1), interiorNameStr(<span class="stringliteral">&quot;INTERIOR_MATERIAL&quot;</span>) { };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#add660070f473fc84b73f0f60b6d3acbd">~ObjFileWriter</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#ac2bcc5fcc4b90751a5ff71171669cfbc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a5098f7f493b3ca1398eacc3fc1a5840d">appendMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a5098f7f493b3ca1398eacc3fc1a5840d">appendMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a2ee6cae4a2caa5bb5023c28939264711">saveToFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) <span class="keyword">override</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a07b444569eb997b320441af487e2e077">setInteriorIndex</a>(int32_t index) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; std::shared_ptr&lt;ExporterMeshData&gt; mMeshData;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; int32_t mIntSurfaceMatIndex;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::string interiorNameStr;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTEXPORTEROBJWRITER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_writer_html_ac2bcc5fcc4b90751a5ff71171669cfbc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_writer.html#ac2bcc5fcc4b90751a5ff71171669cfbc">Nv::Blast::ObjFileWriter::release</a></div><div class="ttdeci">virtual void release() override</div></div>
+<a href="_nv_blast_ext_exporter_obj_writer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTEXPORTEROBJWRITER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTEXPORTEROBJWRITER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_writer.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html">ObjFileWriter</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_i_mesh_file_writer.html">IMeshFileWriter</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a1e7247051563470428d3ed7a6c86bfd5"> 49</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a1e7247051563470428d3ed7a6c86bfd5">ObjFileWriter</a>(): mIntSurfaceMatIndex(-1), interiorNameStr(<span class="stringliteral">&quot;INTERIOR_MATERIAL&quot;</span>) { };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#add660070f473fc84b73f0f60b6d3acbd">~ObjFileWriter</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#ac2bcc5fcc4b90751a5ff71171669cfbc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a5098f7f493b3ca1398eacc3fc1a5840d">appendMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_authoring_result.html">AuthoringResult</a>&amp; aResult, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a5098f7f493b3ca1398eacc3fc1a5840d">appendMesh</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_exporter_mesh_data.html">ExporterMeshData</a>&amp; meshData, <span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keywordtype">bool</span> nonSkinned) <span class="keyword">override</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a2ee6cae4a2caa5bb5023c28939264711">saveToFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* assetName, <span class="keyword">const</span> <span class="keywordtype">char</span>* outputPath) <span class="keyword">override</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_obj_file_writer.html#a07b444569eb997b320441af487e2e077">setInteriorIndex</a>(int32_t index) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; std::shared_ptr&lt;ExporterMeshData&gt; mMeshData;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; int32_t mIntSurfaceMatIndex;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::string interiorNameStr;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTEXPORTEROBJWRITER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_writer_html_ac2bcc5fcc4b90751a5ff71171669cfbc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_writer.html#ac2bcc5fcc4b90751a5ff71171669cfbc">Nv::Blast::ObjFileWriter::release</a></div><div class="ttdeci">virtual void release() override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_obj_file_writer_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_obj_file_writer.html">Nv::Blast::ObjFileWriter</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtExporterObjWriter.h:45</div></div>
<div class="ttc" id="_nv_blast_ext_exporter_8h_html"><div class="ttname"><a href="_nv_blast_ext_exporter_8h.html">NvBlastExtExporter.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_authoring_result_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_authoring_result.html">Nv::Blast::AuthoringResult</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:148</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html b/docs/source_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html
index ff99412..58a2f5a 100755
--- a/docs/source_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_impact_damage_manager_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_impact_damage_manager_8h
<div class="title">NvBlastExtImpactDamageManager.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_impact_damage_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">struct </span>PxContactPair;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>PxContactPairHeader;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a"> 56</a></span>&#160;<span class="keyword">typedef</span> bool(*<a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a>)(<span class="keywordtype">void</span>* data, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor, physx::PxShape* shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804"> 64</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804">isSelfCollissionEnabled</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b">shearDamage</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346"> 66</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346">hardness</a>; </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f"> 67</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f">damageRadiusMax</a>; </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925"> 68</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925">damageThresholdMin</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee"> 69</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee">damageThresholdMax</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb"> 70</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb">damageFalloffRadiusFactor</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334"> 71</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334">damageFunction</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367"> 72</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367">damageFunctionData</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d">ExtImpactSettings</a>() :</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; isSelfCollissionEnabled(false),</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; shearDamage(true),</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; hardness(10.0f),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; damageRadiusMax(2.0f),</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; damageThresholdMin(0.1f), <span class="comment">// to filter small damage events</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; damageThresholdMax(1.0f),</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; damageFalloffRadiusFactor(2.0f),</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; damageFunction(nullptr),</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; damageFunctionData(nullptr)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html"> 96</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* pxManager, <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> onContact(<span class="keyword">const</span> physx::PxContactPairHeader&amp; pairHeader, <span class="keyword">const</span> physx::PxContactPair* pairs, uint32_t nbPairs) = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyDamage() = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> physx::PxFilterFlags FilterShader(</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; physx::PxFilterObjectAttributes attributes0,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; physx::PxFilterData filterData0,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; physx::PxFilterObjectAttributes attributes1,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; physx::PxFilterData filterData1,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; physx::PxPairFlags&amp; pairFlags,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* constantBlock,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint32_t constantBlockSize);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_impact_damage_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">struct </span>PxContactPair;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">struct </span>PxContactPairHeader;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a"> 56</a></span>&#160;<span class="keyword">typedef</span> bool(*<a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a>)(<span class="keywordtype">void</span>* data, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor, physx::PxShape* shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804"> 64</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aea7a153c0b195de478351ba89e207804">isSelfCollissionEnabled</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a26478e4fcbe30768046baacf12563f6b">shearDamage</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346"> 66</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a25d0a370c5293fb22fac9e14edad9346">hardness</a>; </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f"> 67</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f">damageRadiusMax</a>; </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925"> 68</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#abf16147f2b974ef0dd08c770923ef925">damageThresholdMin</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee"> 69</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9988badc8579cfccd15ebd934ac146ee">damageThresholdMax</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb"> 70</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb">damageFalloffRadiusFactor</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334"> 71</a></span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">ExtImpactDamageFunction</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a8a9ae7b592a45684fa7b72269c927334">damageFunction</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367"> 72</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a9192820a2738e2eddffe7fb9b0b2b367">damageFunctionData</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#aa60ddb169850a4b06cb954a2f7c9131d">ExtImpactSettings</a>() :</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; isSelfCollissionEnabled(false),</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; shearDamage(true),</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; hardness(10.0f),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; damageRadiusMax(2.0f),</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; damageThresholdMin(0.1f), <span class="comment">// to filter small damage events</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; damageThresholdMax(1.0f),</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; damageFalloffRadiusFactor(2.0f),</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; damageFunction(nullptr),</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; damageFunctionData(nullptr)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html"> 96</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_impact_damage_manager.html">ExtImpactDamageManager</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* pxManager, <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_impact_settings.html">ExtImpactSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> onContact(<span class="keyword">const</span> physx::PxContactPairHeader&amp; pairHeader, <span class="keyword">const</span> physx::PxContactPair* pairs, uint32_t nbPairs) = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyDamage() = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> physx::PxFilterFlags FilterShader(</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; physx::PxFilterObjectAttributes attributes0,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; physx::PxFilterData filterData0,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; physx::PxFilterObjectAttributes attributes1,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; physx::PxFilterData filterData1,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; physx::PxPairFlags&amp; pairFlags,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* constantBlock,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint32_t constantBlockSize);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;};</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTIMPACTDAMAGEMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_ad18fa486067c588cf4e38f50d604f46a"><div class="ttname"><a href="namespace_nv_1_1_blast.html#ad18fa486067c588cf4e38f50d604f46a">Nv::Blast::ExtImpactDamageFunction</a></div><div class="ttdeci">bool(* ExtImpactDamageFunction)(void *data, ExtPxActor *actor, physx::PxShape *shape, physx::PxVec3 worldPos, physx::PxVec3 worldForce)</div><div class="ttdef"><b>Definition:</b> NvBlastExtImpactDamageManager.h:56</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_impact_settings_html_adf5d37a5ceaca7c71c71325f434596bb"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#adf5d37a5ceaca7c71c71325f434596bb">Nv::Blast::ExtImpactSettings::damageFalloffRadiusFactor</a></div><div class="ttdeci">float damageFalloffRadiusFactor</div><div class="ttdoc">damage attenuation radius factor. Given a radius R for full damage, for [R, R * damageFalloffRadiusFa...</div><div class="ttdef"><b>Definition:</b> NvBlastExtImpactDamageManager.h:70</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_impact_settings_html_a615c8e4e5f48e0e2bfb1a9738f8b227f"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_impact_settings.html#a615c8e4e5f48e0e2bfb1a9738f8b227f">Nv::Blast::ExtImpactSettings::damageRadiusMax</a></div><div class="ttdeci">float damageRadiusMax</div><div class="ttdoc">the maximum radius in which full damage is applied. </div><div class="ttdef"><b>Definition:</b> NvBlastExtImpactDamageManager.h:67</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_input_stream_8h_source.html b/docs/source_docs/files/_nv_blast_ext_input_stream_8h_source.html
index 60280d0..1db5ca8 100755
--- a/docs/source_docs/files/_nv_blast_ext_input_stream_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_input_stream_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_input_stream_8h_source.h
<div class="title">NvBlastExtInputStream.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_input_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;istream&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_input_stream.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html">ExtInputStream</a> : <span class="keyword">public</span> kj::InputStream</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html#a638fe9ccf64b23ba2c477e4ad1eb0a35">ExtInputStream</a>() = <span class="keyword">delete</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html#a638fe9ccf64b23ba2c477e4ad1eb0a35">ExtInputStream</a>(std::istream &amp;inputStream);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// Returns a read of maxBytes. This is supposed to be happy doing partial reads, but currently isn&#39;t. </span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html#a8fdb8bfaacf4f53355a180b1b9d1b234">tryRead</a>(<span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> minBytes, <span class="keywordtype">size_t</span> maxBytes) <span class="keyword">override</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::istream &amp;m_inputStream;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_input_stream_html_a638fe9ccf64b23ba2c477e4ad1eb0a35"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_input_stream.html#a638fe9ccf64b23ba2c477e4ad1eb0a35">Nv::Blast::ExtInputStream::ExtInputStream</a></div><div class="ttdeci">ExtInputStream()=delete</div></div>
+<a href="_nv_blast_ext_input_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;istream&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_input_stream.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html">ExtInputStream</a> : <span class="keyword">public</span> kj::InputStream</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html#a638fe9ccf64b23ba2c477e4ad1eb0a35">ExtInputStream</a>() = <span class="keyword">delete</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html#a638fe9ccf64b23ba2c477e4ad1eb0a35">ExtInputStream</a>(std::istream &amp;inputStream);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// Returns a read of maxBytes. This is supposed to be happy doing partial reads, but currently isn&#39;t. </span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html#a8fdb8bfaacf4f53355a180b1b9d1b234">tryRead</a>(<span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> minBytes, <span class="keywordtype">size_t</span> maxBytes) <span class="keyword">override</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::istream &amp;m_inputStream;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_input_stream_html_a638fe9ccf64b23ba2c477e4ad1eb0a35"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_input_stream.html#a638fe9ccf64b23ba2c477e4ad1eb0a35">Nv::Blast::ExtInputStream::ExtInputStream</a></div><div class="ttdeci">ExtInputStream()=delete</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_input_stream_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_input_stream.html">Nv::Blast::ExtInputStream</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtInputStream.h:39</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_input_stream_html_a8fdb8bfaacf4f53355a180b1b9d1b234"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_input_stream.html#a8fdb8bfaacf4f53355a180b1b9d1b234">Nv::Blast::ExtInputStream::tryRead</a></div><div class="ttdeci">virtual size_t tryRead(void *buffer, size_t minBytes, size_t maxBytes) override</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_k_j_px_input_stream_8h_source.html b/docs/source_docs/files/_nv_blast_ext_k_j_px_input_stream_8h_source.html
index ffd71c7..a4baf25 100755
--- a/docs/source_docs/files/_nv_blast_ext_k_j_px_input_stream_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_k_j_px_input_stream_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_k_j_px_input_stream_8h_s
<div class="title">NvBlastExtKJPxInputStream.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_k_j_px_input_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;PxIO.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;capnp/common.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">A wrapper around a Capn Proto Data reader.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">Since it needs to behave like a stream, it&#39;s internally wrapped in a stream.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html">ExtKJPxInputStream</a> : <span class="keyword">public</span> physx::PxInputStream</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#acb8d8cdf82360ee64973237538f1e41c">ExtKJPxInputStream</a>(capnp::Data::Reader inReader);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#adb5d5b685540948d8d5ac71c8ba7983e">~ExtKJPxInputStream</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#a992721d3c22baf1113ba9dbb34afb00d">read</a>(<span class="keywordtype">void</span>* dest, uint32_t count) <span class="keyword">override</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; capnp::Data::Reader dataReader;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::shared_ptr&lt;kj::ArrayInputStream&gt; inputStream;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_nv_blast_ext_k_j_px_input_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;PxIO.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;capnp/common.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">A wrapper around a Capn Proto Data reader.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">Since it needs to behave like a stream, it&#39;s internally wrapped in a stream.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html">ExtKJPxInputStream</a> : <span class="keyword">public</span> physx::PxInputStream</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#acb8d8cdf82360ee64973237538f1e41c">ExtKJPxInputStream</a>(capnp::Data::Reader inReader);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#adb5d5b685540948d8d5ac71c8ba7983e">~ExtKJPxInputStream</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#a992721d3c22baf1113ba9dbb34afb00d">read</a>(<span class="keywordtype">void</span>* dest, uint32_t count) <span class="keyword">override</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; capnp::Data::Reader dataReader;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::shared_ptr&lt;kj::ArrayInputStream&gt; inputStream;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream_html_adb5d5b685540948d8d5ac71c8ba7983e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#adb5d5b685540948d8d5ac71c8ba7983e">Nv::Blast::ExtKJPxInputStream::~ExtKJPxInputStream</a></div><div class="ttdeci">~ExtKJPxInputStream()=default</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html">Nv::Blast::ExtKJPxInputStream</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtKJPxInputStream.h:48</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream_html_acb8d8cdf82360ee64973237538f1e41c"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_input_stream.html#acb8d8cdf82360ee64973237538f1e41c">Nv::Blast::ExtKJPxInputStream::ExtKJPxInputStream</a></div><div class="ttdeci">ExtKJPxInputStream(capnp::Data::Reader inReader)</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_k_j_px_output_stream_8h_source.html b/docs/source_docs/files/_nv_blast_ext_k_j_px_output_stream_8h_source.html
index 6c5d64e..fe388b8 100755
--- a/docs/source_docs/files/_nv_blast_ext_k_j_px_output_stream_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_k_j_px_output_stream_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_k_j_px_output_stream_8h_
<div class="title">NvBlastExtKJPxOutputStream.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_k_j_px_output_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;PxIO.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;kj/common.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html">ExtKJPxOutputStream</a> : <span class="keyword">public</span> physx::PxOutputStream</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a604f257e1ea92998074532a8cadd12fb">ExtKJPxOutputStream</a>(kj::ArrayPtr&lt;unsigned char&gt; inBuffer);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#afbb6c374217134768447c0e5fa0723f8">~ExtKJPxOutputStream</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a19304b557e9a48885be5130567acbac9">write</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* src, uint32_t count) <span class="keyword">override</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a2bff63a4af05957689fccefbddb193fe"> 49</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a2bff63a4af05957689fccefbddb193fe">getWrittenBytes</a>() { <span class="keywordflow">return</span> writtenBytes; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a65d3fea0dc28e2cec080446c8d05caa1"> 51</a></span>&#160; kj::ArrayPtr&lt;unsigned char&gt; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a65d3fea0dc28e2cec080446c8d05caa1">getBuffer</a>() { <span class="keywordflow">return</span> Buffer; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint32_t writtenBytes;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; kj::ArrayPtr&lt;unsigned char&gt; Buffer;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::shared_ptr&lt;kj::ArrayOutputStream&gt; outputStream;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html">Nv::Blast::ExtKJPxOutputStream</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtKJPxOutputStream.h:41</div></div>
+<a href="_nv_blast_ext_k_j_px_output_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;PxIO.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;kj/common.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html">ExtKJPxOutputStream</a> : <span class="keyword">public</span> physx::PxOutputStream</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a604f257e1ea92998074532a8cadd12fb">ExtKJPxOutputStream</a>(kj::ArrayPtr&lt;unsigned char&gt; inBuffer);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#afbb6c374217134768447c0e5fa0723f8">~ExtKJPxOutputStream</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a19304b557e9a48885be5130567acbac9">write</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* src, uint32_t count) <span class="keyword">override</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a2bff63a4af05957689fccefbddb193fe"> 49</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a2bff63a4af05957689fccefbddb193fe">getWrittenBytes</a>() { <span class="keywordflow">return</span> writtenBytes; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a65d3fea0dc28e2cec080446c8d05caa1"> 51</a></span>&#160; kj::ArrayPtr&lt;unsigned char&gt; <a class="code" href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a65d3fea0dc28e2cec080446c8d05caa1">getBuffer</a>() { <span class="keywordflow">return</span> Buffer; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint32_t writtenBytes;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; kj::ArrayPtr&lt;unsigned char&gt; Buffer;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::shared_ptr&lt;kj::ArrayOutputStream&gt; outputStream;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html">Nv::Blast::ExtKJPxOutputStream</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtKJPxOutputStream.h:41</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream_html_a604f257e1ea92998074532a8cadd12fb"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a604f257e1ea92998074532a8cadd12fb">Nv::Blast::ExtKJPxOutputStream::ExtKJPxOutputStream</a></div><div class="ttdeci">ExtKJPxOutputStream(kj::ArrayPtr&lt; unsigned char &gt; inBuffer)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream_html_afbb6c374217134768447c0e5fa0723f8"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#afbb6c374217134768447c0e5fa0723f8">Nv::Blast::ExtKJPxOutputStream::~ExtKJPxOutputStream</a></div><div class="ttdeci">~ExtKJPxOutputStream()=default</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream_html_a19304b557e9a48885be5130567acbac9"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_k_j_px_output_stream.html#a19304b557e9a48885be5130567acbac9">Nv::Blast::ExtKJPxOutputStream::write</a></div><div class="ttdeci">virtual uint32_t write(const void *src, uint32_t count) override</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_ll_serialization_8h_source.html b/docs/source_docs/files/_nv_blast_ext_ll_serialization_8h_source.html
index 2599a22..f97f0e7 100755
--- a/docs/source_docs/files/_nv_blast_ext_ll_serialization_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_ll_serialization_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_ll_serialization_8h_sour
<div class="title">NvBlastExtLlSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_ll_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html">LlObjectTypeID</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4">Enum</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4a982a9d27b7909cf9d7e3ce490cbb5d4a"> 58</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf">Family</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;A&#39;</span>),</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#afe00711fe79056d096572581cb4258ec">NvBlastExtLlSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a61248790a9de354b1f1c9a31a3879726">NvBlastExtSerializationSerializeAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a5b6d9c82f8a5d8407ab942ef62f582bf">NvBlastExtSerializationSerializeFamilyIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family);</div><div class="ttc" id="_nv_blast_ext_ll_serialization_8h_html_a5b6d9c82f8a5d8407ab942ef62f582bf"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8h.html#a5b6d9c82f8a5d8407ab942ef62f582bf">NvBlastExtSerializationSerializeFamilyIntoBuffer</a></div><div class="ttdeci">NVBLAST_API uint64_t NvBlastExtSerializationSerializeFamilyIntoBuffer(void *&amp;buffer, Nv::Blast::ExtSerialization &amp;serialization, const NvBlastFamily *family)</div></div>
+<a href="_nv_blast_ext_ll_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html"> 54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html">LlObjectTypeID</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4"> 56</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4">Enum</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4a982a9d27b7909cf9d7e3ce490cbb5d4a"> 58</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf"> 59</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf">Family</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;A&#39;</span>),</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#afe00711fe79056d096572581cb4258ec">NvBlastExtLlSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a61248790a9de354b1f1c9a31a3879726">NvBlastExtSerializationSerializeAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* asset);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_ll_serialization_8h.html#a5b6d9c82f8a5d8407ab942ef62f582bf">NvBlastExtSerializationSerializeFamilyIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* family);</div><div class="ttc" id="_nv_blast_ext_ll_serialization_8h_html_a5b6d9c82f8a5d8407ab942ef62f582bf"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8h.html#a5b6d9c82f8a5d8407ab942ef62f582bf">NvBlastExtSerializationSerializeFamilyIntoBuffer</a></div><div class="ttdeci">NVBLAST_API uint64_t NvBlastExtSerializationSerializeFamilyIntoBuffer(void *&amp;buffer, Nv::Blast::ExtSerialization &amp;serialization, const NvBlastFamily *family)</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html_ae5c980f1b9848025a2fefa05a9d3bce1"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a></div><div class="ttdeci">#define NVBLAST_API</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessor.h:37</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ll_object_type_i_d_html_ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ll_object_type_i_d.html#ae8bf597dc1e1e242817ae55ba0d632c4ab1133c446167ebaa0ee470506f7b6bbf">Nv::Blast::LlObjectTypeID::Family</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtLlSerialization.h:59</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_ll_serializer_c_a_p_n_8h_source.html b/docs/source_docs/files/_nv_blast_ext_ll_serializer_c_a_p_n_8h_source.html
index b3e71e2..0168165 100755
--- a/docs/source_docs/files/_nv_blast_ext_ll_serializer_c_a_p_n_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_ll_serializer_c_a_p_n_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_ll_serializer_c_a_p_n_8h
<div class="title">NvBlastExtLlSerializerCAPN.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_ll_serializer_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_asset_d_t_o_8h.html">AssetDTO.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;Asset, Serialization::Asset::Reader, Serialization::Asset::Builder&gt;::serializeIntoBuilder(Serialization::Asset::Builder&amp; assetBuilder, <span class="keyword">const</span> Asset* asset)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">AssetDTO::serialize</a>(assetBuilder, asset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;Asset, Serialization::Asset::Reader, Serialization::Asset::Builder&gt;::serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> Asset* asset)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; Serialization::Asset::Builder assetBuilder = message.initRoot&lt;Serialization::Asset&gt;();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> serializeIntoBuilder(assetBuilder, asset);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> Asset* ExtSerializationCAPN&lt;Asset, Serialization::Asset::Reader, Serialization::Asset::Builder&gt;::deserializeFromStreamReader(capnp::InputStreamMessageReader &amp;message)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; Serialization::Asset::Reader reader = message.getRoot&lt;Serialization::Asset&gt;();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> AssetDTO::deserialize(reader);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="bt_vector3_8h_html_aa97ad00bf0550636fd7e2e701fb7067f"><div class="ttname"><a href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">serialize</a></div><div class="ttdeci">SIMD_FORCE_INLINE void serialize(struct btVector3Data &amp;dataOut) const</div></div>
+<a href="_nv_blast_ext_ll_serializer_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_asset_d_t_o_8h.html">AssetDTO.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;Asset, Serialization::Asset::Reader, Serialization::Asset::Builder&gt;::serializeIntoBuilder(Serialization::Asset::Builder&amp; assetBuilder, <span class="keyword">const</span> Asset* asset)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">AssetDTO::serialize</a>(assetBuilder, asset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;Asset, Serialization::Asset::Reader, Serialization::Asset::Builder&gt;::serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> Asset* asset)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; Serialization::Asset::Builder assetBuilder = message.initRoot&lt;Serialization::Asset&gt;();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> serializeIntoBuilder(assetBuilder, asset);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> Asset* ExtSerializationCAPN&lt;Asset, Serialization::Asset::Reader, Serialization::Asset::Builder&gt;::deserializeFromStreamReader(capnp::InputStreamMessageReader &amp;message)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; Serialization::Asset::Reader reader = message.getRoot&lt;Serialization::Asset&gt;();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> AssetDTO::deserialize(reader);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="bt_vector3_8h_html_aa97ad00bf0550636fd7e2e701fb7067f"><div class="ttname"><a href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">serialize</a></div><div class="ttdeci">SIMD_FORCE_INLINE void serialize(struct btVector3Data &amp;dataOut) const</div></div>
<div class="ttc" id="_nv_blast_ext_serialization_c_a_p_n_8h_html"><div class="ttname"><a href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a></div></div>
<div class="ttc" id="_asset_d_t_o_8h_html"><div class="ttname"><a href="_asset_d_t_o_8h.html">AssetDTO.h</a></div></div>
<div class="ttc" id="_nv_blast_asset_8h_html"><div class="ttname"><a href="_nv_blast_asset_8h.html">NvBlastAsset.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_output_stream_8h_source.html b/docs/source_docs/files/_nv_blast_ext_output_stream_8h_source.html
index 90aeaf3..29999d2 100755
--- a/docs/source_docs/files/_nv_blast_ext_output_stream_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_output_stream_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_output_stream_8h_source.
<div class="title">NvBlastExtOutputStream.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_output_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;ostream&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_output_stream.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html">ExtOutputStream</a> : <span class="keyword">public</span> kj::OutputStream</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html#a60ce3ff17525897a6adfb61aebb8e4dc">ExtOutputStream</a>() = <span class="keyword">delete</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html#a60ce3ff17525897a6adfb61aebb8e4dc">ExtOutputStream</a>(std::ostream &amp;outputStream);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html#a43bf585900e4a505f7c2b2c3f52bf3e1">write</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size) <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::ostream &amp;m_outputStream;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_output_stream_html_a43bf585900e4a505f7c2b2c3f52bf3e1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_output_stream.html#a43bf585900e4a505f7c2b2c3f52bf3e1">Nv::Blast::ExtOutputStream::write</a></div><div class="ttdeci">virtual void write(const void *buffer, size_t size) override</div></div>
+<a href="_nv_blast_ext_output_stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;kj/io.h&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;ostream&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_output_stream.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html">ExtOutputStream</a> : <span class="keyword">public</span> kj::OutputStream</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html#a60ce3ff17525897a6adfb61aebb8e4dc">ExtOutputStream</a>() = <span class="keyword">delete</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html#a60ce3ff17525897a6adfb61aebb8e4dc">ExtOutputStream</a>(std::ostream &amp;outputStream);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html#a43bf585900e4a505f7c2b2c3f52bf3e1">write</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size) <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::ostream &amp;m_outputStream;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_output_stream_html_a43bf585900e4a505f7c2b2c3f52bf3e1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_output_stream.html#a43bf585900e4a505f7c2b2c3f52bf3e1">Nv::Blast::ExtOutputStream::write</a></div><div class="ttdeci">virtual void write(const void *buffer, size_t size) override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_output_stream_html_a60ce3ff17525897a6adfb61aebb8e4dc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_output_stream.html#a60ce3ff17525897a6adfb61aebb8e4dc">Nv::Blast::ExtOutputStream::ExtOutputStream</a></div><div class="ttdeci">ExtOutputStream()=delete</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_output_stream_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_output_stream.html">Nv::Blast::ExtOutputStream</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtOutputStream.h:39</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_8h_source.html
index 78fdb5a..93783d5 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_8h_source.html','');}
<div class="title">NvBlastExtPx.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPX_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPX_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPX_H</span></div><div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
+<a href="_nv_blast_ext_px_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPX_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPX_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPX_H</span></div><div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_manager_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_family_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_actor_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_actor_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_actor_8h_source.html
index 89a0b06..6456466 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_actor_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_actor_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_actor_8h_source.html'
<div class="title">NvBlastExtPxActor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> uint32_t* getChunkIndices() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> physx::PxRigidDynamic&amp; getPhysXActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; getTkActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; getFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;};</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXACTOR_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> uint32_t* getChunkIndices() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> physx::PxRigidDynamic&amp; getPhysXActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; getTkActor() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; getFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;};</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXACTOR_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_actor.html">Nv::Blast::ExtPxActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxActor.h:57</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_actor_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_actor_impl_8h_source.html
index b096440..390a425 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_actor_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_actor_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_actor_impl_8h_source.
<div class="title">NvBlastExtPxActorImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_actor_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXACTORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXACTORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>ExtPxFamilyImpl;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html">PxActorCreateInfo</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a28eb231942c349d0d50f82f413960af1"> 50</a></span>&#160; PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a28eb231942c349d0d50f82f413960af1">m_transform</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a76510af3d085300f0e85dcf0829cfb63"> 51</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a76510af3d085300f0e85dcf0829cfb63">m_scale</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#ae5e985920fb9dfb436cbcf60982f4c0f"> 52</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#ae5e985920fb9dfb436cbcf60982f4c0f">m_parentLinearVelocity</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#af0f7e8e9589441b741bbcf42f97ffad9"> 53</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#af0f7e8e9589441b741bbcf42f97ffad9">m_parentAngularVelocity</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a4acdce84fe12b6a8f05da50d5800d0c1"> 54</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a4acdce84fe12b6a8f05da50d5800d0c1">m_parentCOM</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html">ExtPxActorImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html">ExtPxActorImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>* family, <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* tkActor, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html">PxActorCreateInfo</a>&amp; pxActorInfo);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#ad20855a2294d8d5256e01bd88e2dbfdc"> 65</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#ad20855a2294d8d5256e01bd88e2dbfdc">~ExtPxActorImpl</a>()</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; release();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> release();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a22fe6604009b035b5b49c51c9e2fe8c4"> 75</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a22fe6604009b035b5b49c51c9e2fe8c4">getChunkCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(m_chunkIndices.size());</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#af9334fd5ded25104f48f84f7a822b10d"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#af9334fd5ded25104f48f84f7a822b10d">getChunkIndices</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> m_chunkIndices.begin();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a3e3e3d0926ce6ed89388a0ddc8b716bb"> 85</a></span>&#160; <span class="keyword">virtual</span> PxRigidDynamic&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a3e3e3d0926ce6ed89388a0ddc8b716bb">getPhysXActor</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> *m_rigidDynamic;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a9e6e2655b144301dff9182e7ebf423e5"> 90</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a9e6e2655b144301dff9182e7ebf423e5">getTkActor</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> *m_tkActor;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; getFamily() <span class="keyword">const override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>* m_family;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* m_tkActor;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; PxRigidDynamic* m_rigidDynamic;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray&lt;uint32_t, 4&gt;::type</a> m_chunkIndices;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXACTORIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_actor_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXACTORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXACTORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_actor_8h.html">NvBlastExtPxActor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>ExtPxFamilyImpl;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html">PxActorCreateInfo</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a28eb231942c349d0d50f82f413960af1"> 50</a></span>&#160; PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a28eb231942c349d0d50f82f413960af1">m_transform</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a76510af3d085300f0e85dcf0829cfb63"> 51</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a76510af3d085300f0e85dcf0829cfb63">m_scale</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#ae5e985920fb9dfb436cbcf60982f4c0f"> 52</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#ae5e985920fb9dfb436cbcf60982f4c0f">m_parentLinearVelocity</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#af0f7e8e9589441b741bbcf42f97ffad9"> 53</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#af0f7e8e9589441b741bbcf42f97ffad9">m_parentAngularVelocity</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a4acdce84fe12b6a8f05da50d5800d0c1"> 54</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a4acdce84fe12b6a8f05da50d5800d0c1">m_parentCOM</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html">ExtPxActorImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html">ExtPxActorImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>* family, <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* tkActor, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html">PxActorCreateInfo</a>&amp; pxActorInfo);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#ad20855a2294d8d5256e01bd88e2dbfdc"> 65</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#ad20855a2294d8d5256e01bd88e2dbfdc">~ExtPxActorImpl</a>()</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; release();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> release();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a22fe6604009b035b5b49c51c9e2fe8c4"> 75</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a22fe6604009b035b5b49c51c9e2fe8c4">getChunkCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(m_chunkIndices.size());</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#af9334fd5ded25104f48f84f7a822b10d"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#af9334fd5ded25104f48f84f7a822b10d">getChunkIndices</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> m_chunkIndices.begin();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a3e3e3d0926ce6ed89388a0ddc8b716bb"> 85</a></span>&#160; <span class="keyword">virtual</span> PxRigidDynamic&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a3e3e3d0926ce6ed89388a0ddc8b716bb">getPhysXActor</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> *m_rigidDynamic;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a9e6e2655b144301dff9182e7ebf423e5"> 90</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a9e6e2655b144301dff9182e7ebf423e5">getTkActor</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> *m_tkActor;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; getFamily() <span class="keyword">const override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>* m_family;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* m_tkActor;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; PxRigidDynamic* m_rigidDynamic;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray&lt;uint32_t, 4&gt;::type</a> m_chunkIndices;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXACTORIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_px_actor_create_info_html_a28eb231942c349d0d50f82f413960af1"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_px_actor_create_info.html#a28eb231942c349d0d50f82f413960af1">Nv::Blast::PxActorCreateInfo::m_transform</a></div><div class="ttdeci">PxTransform m_transform</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxActorImpl.h:50</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_actor_impl_html_a22fe6604009b035b5b49c51c9e2fe8c4"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html#a22fe6604009b035b5b49c51c9e2fe8c4">Nv::Blast::ExtPxActorImpl::getChunkCount</a></div><div class="ttdeci">virtual uint32_t getChunkCount() const override</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxActorImpl.h:75</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_asset_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_asset_8h_source.html
index f6c0d87..3b5bcac 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_asset_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_asset_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_asset_8h_source.html'
<div class="title">NvBlastExtPxAsset.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html"> 64</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html"> 71</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5"> 73</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5">transform</a>; </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411"> 74</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411">geometry</a>; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html"> 82</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb">subchunks</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46"> 85</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46">subchunkCount</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1"> 86</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1">isStatic</a>; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc"> 89</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc">pxChunks</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443"> 100</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443">transform</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f"> 101</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f">geometry</a>; </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html"> 110</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8"> 112</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8">firstSubchunkIndex</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2"> 113</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2">subchunkCount</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981">isStatic</a>; </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html"> 123</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a>&amp; desc, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSubchunks, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> Factory method for deserialization</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> Doesn&#39;t specify chunks or subchunks as they&#39;ll be fed in during deserialization to avoid copying stuff around.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Create a new ExtPxAsset.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> \param[in] asset TkAsset from which ExtPxAsset will be created</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> \param[in] chunks Array of physics chunks descriptors</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> \param[in] chunkCount Size of chunks descriptors array</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> \return the new ExtPxAsset if successful, NULL otherwise.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* chunks, uint32_t chunkCount);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>&amp; getTkAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">virtual</span> uint32_t getSubchunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* getSubchunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUniformHealth(<span class="keywordtype">bool</span> enabled) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAccelerator(<a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* getAccelerator() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9"> 245</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9">userData</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;};</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXASSET_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html"> 64</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html"> 71</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5"> 73</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a011cf15c6c920cb7294e06e5cc3eb5c5">transform</a>; </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411"> 74</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html#a2e84db0829eedaf8ed1ab16a47fe7411">geometry</a>; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html"> 82</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_subchunk_desc.html">SubchunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a3bb5d4e90ff3575991c8db90dbcad7fb">subchunks</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46"> 85</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a0390e43b925d96aff09d2f598371cc46">subchunkCount</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1"> 86</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html#a5528b3249de8c277daf25ee8f6ab06c1">isStatic</a>; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; };</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc"> 89</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ChunkDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc">pxChunks</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443"> 100</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a38d62b26d068141c048b6b5ee69e7443">transform</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f"> 101</a></span>&#160; physx::PxConvexMeshGeometry <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html#a30887ab12bc560a3adfd854aaea2c17f">geometry</a>; </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html"> 110</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8"> 112</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#aee67c70b4ba1104ef3eaf78b2a94d8f8">firstSubchunkIndex</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2"> 113</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#ab72119e6ade5758ec1c8874894d53ab2">subchunkCount</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981"> 114</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html#a6e532ee5ae271c1dad75afed166a1981">isStatic</a>; </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html"> 123</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a>&amp; desc, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSubchunks, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> Factory method for deserialization</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> Doesn&#39;t specify chunks or subchunks as they&#39;ll be fed in during deserialization to avoid copying stuff around.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Create a new ExtPxAsset.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> \param[in] asset TkAsset from which ExtPxAsset will be created</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> \param[in] chunks Array of physics chunks descriptors</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> \param[in] chunkCount Size of chunks descriptors array</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> \return the new ExtPxAsset if successful, NULL otherwise.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* chunks, uint32_t chunkCount);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>&amp; getTkAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">virtual</span> uint32_t getSubchunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* getSubchunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; getDefaultActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUniformHealth(<span class="keywordtype">bool</span> enabled) = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAccelerator(<a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator) = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* getAccelerator() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9"> 245</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html#aadbfad94aec1aaf6e431482cc4d659f9">userData</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;};</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXASSET_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_chunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:110</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_asset_desc_html_a39e1228a08020f762b83e81cc4f615dc"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html#a39e1228a08020f762b83e81cc4f615dc">Nv::Blast::ExtPxAssetDesc::pxChunks</a></div><div class="ttdeci">ChunkDesc * pxChunks</div><div class="ttdoc">array of chunks in asset, should be of size chunkCount ( </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:89</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_asset_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_asset_impl_8h_source.html
index 9a4c322..cda460b 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_asset_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_asset_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_asset_impl_8h_source.
<div class="title">NvBlastExtPxAssetImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_asset_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXASSETIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXASSETIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">using namespace </span>general_PxIOStream2;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Macro to load a uint32_t (or larger) with four characters (move it in some shared header if it&#39;s used anywhere else in Ext)</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_nv_blast_ext_px_asset_impl_8h.html#a3ee833245ea98dec4529d0ed152f2590"> 47</a></span>&#160;<span class="preprocessor">#define NVBLASTEXT_FOURCC(_a, _b, _c, _d) ( (uint32_t)(_a) | (uint32_t)(_b)&lt;&lt;8 | (uint32_t)(_c)&lt;&lt;16 | (uint32_t)(_d)&lt;&lt;24 )</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#abc19d867601adaa427eda7fc34ed5e26"> 55</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a>&amp; desc, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSubchunks, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* chunks, uint32_t chunkCount);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a35a021b8e8a4c8894c1f3a08af4c5ca1"> 71</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a35a021b8e8a4c8894c1f3a08af4c5ca1">getTkAsset</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> *m_tkAsset;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae4fa011be5771a7d80af62b304a2cfb"> 76</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae4fa011be5771a7d80af62b304a2cfb">getChunkCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> m_chunks.size();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2cb4429c6ab8b7dccac4fdf67d9c59e2"> 81</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2cb4429c6ab8b7dccac4fdf67d9c59e2">getChunks</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> m_chunks.begin();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a6872ad99d48aabca771ab7522ab66634"> 86</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a6872ad99d48aabca771ab7522ab66634">getSubchunkCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> m_subchunks.size();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ac6aa48df29fe2ca7a704855fbccb3e20"> 91</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ac6aa48df29fe2ca7a704855fbccb3e20">getSubchunks</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> m_subchunks.begin();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae8a2ce0648abd7a5a93e498cac9570c"> 96</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae8a2ce0648abd7a5a93e498cac9570c">getDefaultActorDesc</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> m_defaultActorDesc;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a51c8a7ad1f0be4c432cbe2792e1dff34"> 101</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a51c8a7ad1f0be4c432cbe2792e1dff34">getDefaultActorDesc</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> m_defaultActorDesc;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUniformHealth(<span class="keywordtype">bool</span> enabled) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a8d7d63ca264535cb03c932240ad32bc0"> 108</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a8d7d63ca264535cb03c932240ad32bc0">setAccelerator</a>(<a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator)<span class="keyword"> override</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_accelerator = accelerator;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ab84f598c2b9c9fac62bb12d142249fa4"> 113</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ab84f598c2b9c9fac62bb12d142249fa4">getAccelerator</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> m_accelerator;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> Get the underlying array for the chunks. Used for serialization.</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2a979410f84fd8111c3faee3382647f9"> 124</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxChunk&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2a979410f84fd8111c3faee3382647f9">getChunksArray</a>() { <span class="keywordflow">return</span> m_chunks; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> Get the underlying array for the subchunks. Used for serialization.</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ad9430486030ca6256ac4e1a9dea5f5db"> 129</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxSubchunk&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ad9430486030ca6256ac4e1a9dea5f5db">getSubchunksArray</a>() { <span class="keywordflow">return</span> m_subchunks; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> Get the underlying array for the bond healths. Used for serialization.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a04c99ca132e9e1e3a7b359c5cda81c71"> 134</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a04c99ca132e9e1e3a7b359c5cda81c71">getBondHealthsArray</a>() { <span class="keywordflow">return</span> m_bondHealths; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Get the underlying array for the support chunk healths. Used for serialization.</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a54bda848336ac0bf759d06dc02bf14b5"> 139</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a54bda848336ac0bf759d06dc02bf14b5">getSupportChunkHealthsArray</a>() { <span class="keywordflow">return</span> m_supportChunkHealths; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> fillPhysicsChunks(<a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSuchunk, uint32_t chunkCount);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> fillPhysicsChunks(<a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* desc, uint32_t count);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* m_tkAsset;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxChunk&gt;::type</a> m_chunks;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxSubchunk&gt;::type</a> m_subchunks;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a> m_bondHealths;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a> m_supportChunkHealths;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* m_accelerator;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a> m_defaultActorDesc;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;};</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXASSETIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_asset_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXASSETIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXASSETIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">using namespace </span>general_PxIOStream2;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Macro to load a uint32_t (or larger) with four characters (move it in some shared header if it&#39;s used anywhere else in Ext)</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_nv_blast_ext_px_asset_impl_8h.html#a3ee833245ea98dec4529d0ed152f2590"> 47</a></span>&#160;<span class="preprocessor">#define NVBLASTEXT_FOURCC(_a, _b, _c, _d) ( (uint32_t)(_a) | (uint32_t)(_b)&lt;&lt;8 | (uint32_t)(_c)&lt;&lt;16 | (uint32_t)(_d)&lt;&lt;24 )</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#abc19d867601adaa427eda7fc34ed5e26"> 55</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc.html">ExtPxAssetDesc</a>&amp; desc, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSubchunks, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* chunks, uint32_t chunkCount);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* asset);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html">ExtPxAssetImpl</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a35a021b8e8a4c8894c1f3a08af4c5ca1"> 71</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a35a021b8e8a4c8894c1f3a08af4c5ca1">getTkAsset</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> *m_tkAsset;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae4fa011be5771a7d80af62b304a2cfb"> 76</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae4fa011be5771a7d80af62b304a2cfb">getChunkCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> m_chunks.size();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2cb4429c6ab8b7dccac4fdf67d9c59e2"> 81</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2cb4429c6ab8b7dccac4fdf67d9c59e2">getChunks</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> m_chunks.begin();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a6872ad99d48aabca771ab7522ab66634"> 86</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a6872ad99d48aabca771ab7522ab66634">getSubchunkCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> m_subchunks.size();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ac6aa48df29fe2ca7a704855fbccb3e20"> 91</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ac6aa48df29fe2ca7a704855fbccb3e20">getSubchunks</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> m_subchunks.begin();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae8a2ce0648abd7a5a93e498cac9570c"> 96</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#aae8a2ce0648abd7a5a93e498cac9570c">getDefaultActorDesc</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> m_defaultActorDesc;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a51c8a7ad1f0be4c432cbe2792e1dff34"> 101</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a51c8a7ad1f0be4c432cbe2792e1dff34">getDefaultActorDesc</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> m_defaultActorDesc;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUniformHealth(<span class="keywordtype">bool</span> enabled) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a8d7d63ca264535cb03c932240ad32bc0"> 108</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a8d7d63ca264535cb03c932240ad32bc0">setAccelerator</a>(<a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* accelerator)<span class="keyword"> override</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_accelerator = accelerator;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ab84f598c2b9c9fac62bb12d142249fa4"> 113</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ab84f598c2b9c9fac62bb12d142249fa4">getAccelerator</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> m_accelerator;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> Get the underlying array for the chunks. Used for serialization.</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2a979410f84fd8111c3faee3382647f9"> 124</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxChunk&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a2a979410f84fd8111c3faee3382647f9">getChunksArray</a>() { <span class="keywordflow">return</span> m_chunks; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> Get the underlying array for the subchunks. Used for serialization.</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ad9430486030ca6256ac4e1a9dea5f5db"> 129</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxSubchunk&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#ad9430486030ca6256ac4e1a9dea5f5db">getSubchunksArray</a>() { <span class="keywordflow">return</span> m_subchunks; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> Get the underlying array for the bond healths. Used for serialization.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a04c99ca132e9e1e3a7b359c5cda81c71"> 134</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a04c99ca132e9e1e3a7b359c5cda81c71">getBondHealthsArray</a>() { <span class="keywordflow">return</span> m_bondHealths; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Get the underlying array for the support chunk healths. Used for serialization.</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a54bda848336ac0bf759d06dc02bf14b5"> 139</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset_impl.html#a54bda848336ac0bf759d06dc02bf14b5">getSupportChunkHealthsArray</a>() { <span class="keywordflow">return</span> m_supportChunkHealths; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> fillPhysicsChunks(<a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* pxChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* pxSuchunk, uint32_t chunkCount);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> fillPhysicsChunks(<a class="code" href="struct_nv_1_1_blast_1_1_ext_px_asset_desc_1_1_chunk_desc.html">ExtPxAssetDesc::ChunkDesc</a>* desc, uint32_t count);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* m_tkAsset;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxChunk&gt;::type</a> m_chunks;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxSubchunk&gt;::type</a> m_subchunks;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a> m_bondHealths;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;float&gt;::type</a> m_supportChunkHealths;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_nv_blast_ext_damage_accelerator.html">NvBlastExtDamageAccelerator</a>* m_accelerator;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a> m_defaultActorDesc;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;};</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXASSETIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_array_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html">Nv::Blast::Array</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:46</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html
index 831d6dd..3aff62e 100644
--- a/docs/source_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_collision_builder_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_collision_builder_8h_
<div class="title">NvBlastExtPxCollisionBuilder.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_collision_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span>PxConvexMesh;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">struct </span>ExtPxChunk;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span>ExtPxSubchunk;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> physx::PxConvexMesh* buildConvexMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull) = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildPhysicsChunks(uint32_t chunkCount, uint32_t* hullOffsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* physicsChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* physicsSubchunks) = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_collision_builder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_convex_mesh_builder_8h.html">NvBlastExtAuthoringConvexMeshBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span>PxConvexMesh;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span>AuthoringResult;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">struct </span>ExtPxChunk;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span>ExtPxSubchunk;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">ConvexMeshBuilder</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> physx::PxConvexMesh* buildConvexMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull) = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildPhysicsChunks(uint32_t chunkCount, uint32_t* hullOffsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* physicsChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* physicsSubchunks) = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXCOLLISIONBUILDER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_chunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:110</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_convex_mesh_builder_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_convex_mesh_builder.html">Nv::Blast::ConvexMeshBuilder</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringConvexMeshBuilder.h:47</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_subchunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">Nv::Blast::ExtPxSubchunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:98</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_collision_builder_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_collision_builder_impl_8h_source.html
index 7fbf087..1c8acbd 100644
--- a/docs/source_docs/files/_nv_blast_ext_px_collision_builder_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_collision_builder_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_collision_builder_imp
<div class="title">NvBlastExtPxCollisionBuilderImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_collision_builder_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXCOLLISIONBUILDERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXCOLLISIONBUILDERIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_collision_builder_8h.html">NvBlastExtPxCollisionBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxPhysicsInsertionCallback;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html"> 45</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html">CollisionHullImpl</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html#a3dc144b46172ea16b2365b3a5f04d3c8"> 47</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html#a3dc144b46172ea16b2365b3a5f04d3c8">CollisionHullImpl</a>() {};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html">CollisionHullImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hullToCopy);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ~<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html">CollisionHullImpl</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; };</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html"> 52</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html">ExtPxCollisionBuilderImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a002e64d7e008affc294e52aeb98458f7"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a002e64d7e008affc294e52aeb98458f7">ExtPxCollisionBuilderImpl</a>(physx::PxCooking* cooking,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; physx::PxPhysicsInsertionCallback* insertionCallback) : mCooking(cooking), mInsertionCallback(insertionCallback) {}</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a161ea3f2b9aac690d140c73a7e61aef7"> 57</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a161ea3f2b9aac690d140c73a7e61aef7">~ExtPxCollisionBuilderImpl</a>() {};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* buildCollisionGeometry(uint32_t verticesCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* vertexData) <span class="keyword">override</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> releaseCollisionHull(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull) <span class="keyword">const override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; physx::PxConvexMesh* buildConvexMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull) <span class="keyword">override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">void</span> buildPhysicsChunks(uint32_t chunkCount, uint32_t* hullOffsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* physicsChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* physicsSubchunks) <span class="keyword">override</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; physx::PxCooking* mCooking;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; physx::PxPhysicsInsertionCallback* mInsertionCallback;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXCOLLISIONBUILDERIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_collision_builder_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXCOLLISIONBUILDERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXCOLLISIONBUILDERIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_collision_builder_8h.html">NvBlastExtPxCollisionBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">class </span>PxPhysicsInsertionCallback;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html"> 45</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html">CollisionHullImpl</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html#a3dc144b46172ea16b2365b3a5f04d3c8"> 47</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html#a3dc144b46172ea16b2365b3a5f04d3c8">CollisionHullImpl</a>() {};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html">CollisionHullImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hullToCopy);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ~<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull_impl.html">CollisionHullImpl</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; };</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html"> 52</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html">ExtPxCollisionBuilderImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a002e64d7e008affc294e52aeb98458f7"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a002e64d7e008affc294e52aeb98458f7">ExtPxCollisionBuilderImpl</a>(physx::PxCooking* cooking,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; physx::PxPhysicsInsertionCallback* insertionCallback) : mCooking(cooking), mInsertionCallback(insertionCallback) {}</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a161ea3f2b9aac690d140c73a7e61aef7"> 57</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a161ea3f2b9aac690d140c73a7e61aef7">~ExtPxCollisionBuilderImpl</a>() {};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* buildCollisionGeometry(uint32_t verticesCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* vertexData) <span class="keyword">override</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> releaseCollisionHull(<a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>* hull) <span class="keyword">const override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; physx::PxConvexMesh* buildConvexMesh(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>&amp; hull) <span class="keyword">override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">void</span> buildPhysicsChunks(uint32_t chunkCount, uint32_t* hullOffsets, <a class="code" href="struct_nv_1_1_blast_1_1_collision_hull.html">CollisionHull</a>** hulls,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">ExtPxChunk</a>* physicsChunks, <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_subchunk.html">ExtPxSubchunk</a>* physicsSubchunks) <span class="keyword">override</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; physx::PxCooking* mCooking;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; physx::PxPhysicsInsertionCallback* mInsertionCallback;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXCOLLISIONBUILDERIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_chunk_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_chunk.html">Nv::Blast::ExtPxChunk</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:110</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl_html_a002e64d7e008affc294e52aeb98458f7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_collision_builder_impl.html#a002e64d7e008affc294e52aeb98458f7">Nv::Blast::ExtPxCollisionBuilderImpl::ExtPxCollisionBuilderImpl</a></div><div class="ttdeci">ExtPxCollisionBuilderImpl(physx::PxCooking *cooking, physx::PxPhysicsInsertionCallback *insertionCallback)</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxCollisionBuilderImpl.h:55</div></div>
<div class="ttc" id="_nv_blast_ext_authoring_types_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_family_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_family_8h_source.html
index 57ee1ef..78e28c0 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_family_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_family_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_family_8h_source.html
<div class="title">NvBlastExtPxFamily.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>PxMaterial;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>PxScene;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11"> 68</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11">flags</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9"> 69</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9">simulationFilterData</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c"> 70</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c">queryFilterData</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88"> 71</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88">contactOffset</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351"> 72</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351">restOffset</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef"> 83</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef">flags</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html"> 92</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab"> 94</a></span>&#160; physx::PxScene* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">scene</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5"> 95</a></span>&#160; physx::PxMaterial* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5">material</a>; </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05"> 96</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05">density</a>; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> spawn(<span class="keyword">const</span> physx::PxTransform&amp; pose, <span class="keyword">const</span> physx::PxVec3&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> despawn() = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; getTkFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> physx::PxShape* <span class="keyword">const</span>* getSubchunkShapes() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; getPxAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(physx::PxMaterial&amp; material) = 0;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> Set ExtPxPxShapeDesc to be used on all newly created PxShapes.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> NOTE: Using it will override marking LEAF_CHUNK in simulationFilterData.word3 now.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> \param[in] pxShapeDesc The PxShape desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxShapeDescTemplate(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* pxShapeDesc) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* getPxShapeDescTemplate() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Set ExtPxPxActorDesc to be used on all newly created PxActors.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> \param[in] pxActorDesc The PxActor desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxActorDesc(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* pxActorDesc) = 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* getPxActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* getMaterial() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* material) = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> postSplitUpdate() = 0;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b"> 248</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b">userData</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;};</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_spawn_settings_html_a3d977bbbeb2cca054bc881f366772dab"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">Nv::Blast::ExtPxSpawnSettings::scene</a></div><div class="ttdeci">physx::PxScene * scene</div><div class="ttdoc">PxScene for PxActors to be spawned. </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:94</div></div>
+<a href="_nv_blast_ext_px_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxFiltering.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>PxMaterial;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>PxScene;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11"> 68</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#adbdde8d2735adf77da6dc72ee431ac11">flags</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9"> 69</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a819fad82341ac1d6f9dc5f1172b7d8b9">simulationFilterData</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c"> 70</a></span>&#160; physx::PxFilterData <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a7fb1461673dcd6593f38a6225e51195c">queryFilterData</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88"> 71</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a13764a5cd7fefa7e813bd6166d016f88">contactOffset</a>; </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351"> 72</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html#a2e41080566d3950ae65c3576766eb351">restOffset</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef"> 83</a></span>&#160; uint8_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html#ac35b6b85472643295280356b710f19ef">flags</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html"> 92</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab"> 94</a></span>&#160; physx::PxScene* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">scene</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5"> 95</a></span>&#160; physx::PxMaterial* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#ad62c55d45b9e5f7447eb607174e49dc5">material</a>; </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05"> 96</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05">density</a>; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html"> 105</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> spawn(<span class="keyword">const</span> physx::PxTransform&amp; pose, <span class="keyword">const</span> physx::PxVec3&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> despawn() = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; getTkFamily() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> physx::PxShape* <span class="keyword">const</span>* getSubchunkShapes() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; getPxAsset() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(physx::PxMaterial&amp; material) = 0;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> Set ExtPxPxShapeDesc to be used on all newly created PxShapes.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> NOTE: Using it will override marking LEAF_CHUNK in simulationFilterData.word3 now.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> \param[in] pxShapeDesc The PxShape desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxShapeDescTemplate(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* pxShapeDesc) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* getPxShapeDescTemplate() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Set ExtPxPxActorDesc to be used on all newly created PxActors.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> </span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> \param[in] pxActorDesc The PxActor desc to be the new default. Can be nullptr.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPxActorDesc(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* pxActorDesc) = 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* getPxActorDesc() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* getMaterial() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaterial(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* material) = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> postSplitUpdate() = 0;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b"> 248</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#aaa4adc1a15857521aa9b61094c3b752b">userData</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;};</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXFAMILY_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_spawn_settings_html_a3d977bbbeb2cca054bc881f366772dab"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#a3d977bbbeb2cca054bc881f366772dab">Nv::Blast::ExtPxSpawnSettings::scene</a></div><div class="ttdeci">physx::PxScene * scene</div><div class="ttdoc">PxScene for PxActors to be spawned. </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:94</div></div>
<div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_spawn_settings_html_acb293066dc9829670992e5e101a7db05"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html#acb293066dc9829670992e5e101a7db05">Nv::Blast::ExtPxSpawnSettings::density</a></div><div class="ttdeci">float density</div><div class="ttdoc">default density for PhysX </div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:96</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_family_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_family_impl_8h_source.html
index d14ee7a..d6f59a6 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_family_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_family_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_family_impl_8h_source
<div class="title">NvBlastExtPxFamilyImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_family_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXFAMILYIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXFAMILYIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_8h.html">NvBlastTkEvent.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>ExtPxManagerImpl;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>ExtPxActorImpl;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">struct </span>PxActorCreateInfo;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>, <a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a2a2a32154a11c0fb71090cd372cd4b65"> 58</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a2a2a32154a11c0fb71090cd372cd4b65">ExtPxActorImpl</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#ac17ec58f018b8de13b3b3e1e74ce24f3"> 59</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#ac17ec58f018b8de13b3b3e1e74ce24f3">ExtPxManagerImpl</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a>&amp; manager, <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; tkFamily, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; pxAsset);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// virtual bool spawn(const PxTransform&amp; pose, const ExtPxSpawnSettings&amp; settings) override;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> spawn(<span class="keyword">const</span> physx::PxTransform&amp; pose, <span class="keyword">const</span> physx::PxVec3&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a>&amp; settings) <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> despawn() <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a6e98e3af9d89246bf77b3df7ec9451f2"> 76</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a6e98e3af9d89246bf77b3df7ec9451f2">getActorCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> m_actors.size();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a914042d1751c5051cd244f97742a2e73"> 81</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a914042d1751c5051cd244f97742a2e73">getActors</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** buffer, uint32_t bufferSize)<span class="keyword"> const override</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint32_t index = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = const_cast&lt;ExtPxFamilyImpl*&gt;(<span class="keyword">this</span>)-&gt;m_actors.getIterator(); !it.done() &amp;&amp; index &lt; bufferSize; ++it)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; buffer[index++] = *it;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> index;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a30b30b60cc85b62ed63badc826183533"> 91</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a30b30b60cc85b62ed63badc826183533">getTkFamily</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> m_tkFamily;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9c6907b41f4670750f4db70d6ff392e2"> 96</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> physx::PxShape* <span class="keyword">const</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9c6907b41f4670750f4db70d6ff392e2">getSubchunkShapes</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> m_subchunkShapes.begin();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aeae615b2b75d611f5b7c3b6085a5171f"> 101</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aeae615b2b75d611f5b7c3b6085a5171f">getPxAsset</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> m_pxAsset;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a1e915376501912d9d9d4c699f03ec04e"> 106</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a1e915376501912d9d9d4c699f03ec04e">setMaterial</a>(PxMaterial&amp; material)<span class="keyword"> override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_spawnSettings.material = &amp;material;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a047dfa3336e38ba76559ef84f14cbcba"> 111</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a047dfa3336e38ba76559ef84f14cbcba">setPxShapeDescTemplate</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* pxShapeDesc)<span class="keyword"> override</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_pxShapeDescTemplate = pxShapeDesc;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a70e9e47cfaa8b62c726cd86ff88d1ef4"> 116</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a70e9e47cfaa8b62c726cd86ff88d1ef4">getPxShapeDescTemplate</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> m_pxShapeDescTemplate;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a55886591edc443fec77fea34ec27179c"> 121</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a55886591edc443fec77fea34ec27179c">setPxActorDesc</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* pxActorDesc)<span class="keyword"> override</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_pxActorDescTemplate = pxActorDesc;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a928d79d573448fda00d58d1b52facde6"> 126</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a928d79d573448fda00d58d1b52facde6">getPxActorDesc</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> m_pxActorDescTemplate;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a387a76526d605d2733d297cfcbcbd51e"> 131</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a387a76526d605d2733d297cfcbcbd51e">getMaterial</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> m_material;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9365359fbde1490bba586b1404bd4001"> 136</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9365359fbde1490bba586b1404bd4001">setMaterial</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* material)<span class="keyword"> override</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_material = material;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#acfef278573bd185278fd6892ead193cd"> 141</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#acfef278573bd185278fd6892ead193cd">subscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_listeners.pushBack(&amp;listener);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aa44cdd80e41521948f74b9c1d5cd6851"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aa44cdd80e41521948f74b9c1d5cd6851">unsubscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_listeners.findAndReplaceWithLast(&amp;listener);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> postSplitUpdate() <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) <span class="keyword">override</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> dispatchActorCreated(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> dispatchActorDestroyed(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> createActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** tkActors, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html">PxActorCreateInfo</a>* pxActorInfos, uint32_t count);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> destroyActors(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** actors, uint32_t count);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a>&amp; m_manager;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; m_tkFamily;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; m_pxAsset;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a> m_spawnSettings;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* m_pxShapeDescTemplate;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* m_pxActorDescTemplate;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* m_material;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> m_isSpawned;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; PxTransform m_initialTransform;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; PxVec3 m_initialScale;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">HashSet&lt;ExtPxActor*&gt;::type</a> m_actors;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActor*&gt;::type</a> m_culledActors;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;ExtPxListener*, 4&gt;::type</a> m_listeners;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;PxShape*&gt;::type</a> m_subchunkShapes;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActor*&gt;::type</a> m_newActorsBuffer;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;PxActorCreateInfo&gt;::type</a> m_newActorCreateInfo;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;PxActor*&gt;::type</a> m_physXActorsBuffer;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxActor*&gt;::type</a> m_actorsBuffer;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;uint32_t&gt;::type</a> m_indicesScratch;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXFAMILYIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_family_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXFAMILYIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXFAMILYIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_8h.html">NvBlastTkEvent.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>ExtPxManagerImpl;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>ExtPxActorImpl;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">struct </span>PxActorCreateInfo;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>, <a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a2a2a32154a11c0fb71090cd372cd4b65"> 58</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a2a2a32154a11c0fb71090cd372cd4b65">ExtPxActorImpl</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#ac17ec58f018b8de13b3b3e1e74ce24f3"> 59</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#ac17ec58f018b8de13b3b3e1e74ce24f3">ExtPxManagerImpl</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a>&amp; manager, <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; tkFamily, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; pxAsset);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// virtual bool spawn(const PxTransform&amp; pose, const ExtPxSpawnSettings&amp; settings) override;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> spawn(<span class="keyword">const</span> physx::PxTransform&amp; pose, <span class="keyword">const</span> physx::PxVec3&amp; scale, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a>&amp; settings) <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> despawn() <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a6e98e3af9d89246bf77b3df7ec9451f2"> 76</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a6e98e3af9d89246bf77b3df7ec9451f2">getActorCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> m_actors.size();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a914042d1751c5051cd244f97742a2e73"> 81</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a914042d1751c5051cd244f97742a2e73">getActors</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** buffer, uint32_t bufferSize)<span class="keyword"> const override</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint32_t index = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = const_cast&lt;ExtPxFamilyImpl*&gt;(<span class="keyword">this</span>)-&gt;m_actors.getIterator(); !it.done() &amp;&amp; index &lt; bufferSize; ++it)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; buffer[index++] = *it;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> index;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a30b30b60cc85b62ed63badc826183533"> 91</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a30b30b60cc85b62ed63badc826183533">getTkFamily</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> m_tkFamily;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9c6907b41f4670750f4db70d6ff392e2"> 96</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> physx::PxShape* <span class="keyword">const</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9c6907b41f4670750f4db70d6ff392e2">getSubchunkShapes</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> m_subchunkShapes.begin();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aeae615b2b75d611f5b7c3b6085a5171f"> 101</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aeae615b2b75d611f5b7c3b6085a5171f">getPxAsset</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> m_pxAsset;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a1e915376501912d9d9d4c699f03ec04e"> 106</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a1e915376501912d9d9d4c699f03ec04e">setMaterial</a>(PxMaterial&amp; material)<span class="keyword"> override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_spawnSettings.material = &amp;material;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a047dfa3336e38ba76559ef84f14cbcba"> 111</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a047dfa3336e38ba76559ef84f14cbcba">setPxShapeDescTemplate</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* pxShapeDesc)<span class="keyword"> override</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_pxShapeDescTemplate = pxShapeDesc;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a70e9e47cfaa8b62c726cd86ff88d1ef4"> 116</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a70e9e47cfaa8b62c726cd86ff88d1ef4">getPxShapeDescTemplate</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> m_pxShapeDescTemplate;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a55886591edc443fec77fea34ec27179c"> 121</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a55886591edc443fec77fea34ec27179c">setPxActorDesc</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* pxActorDesc)<span class="keyword"> override</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_pxActorDescTemplate = pxActorDesc;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a928d79d573448fda00d58d1b52facde6"> 126</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a928d79d573448fda00d58d1b52facde6">getPxActorDesc</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> m_pxActorDescTemplate;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a387a76526d605d2733d297cfcbcbd51e"> 131</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a387a76526d605d2733d297cfcbcbd51e">getMaterial</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> m_material;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9365359fbde1490bba586b1404bd4001"> 136</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9365359fbde1490bba586b1404bd4001">setMaterial</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* material)<span class="keyword"> override</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_material = material;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#acfef278573bd185278fd6892ead193cd"> 141</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#acfef278573bd185278fd6892ead193cd">subscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_listeners.pushBack(&amp;listener);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aa44cdd80e41521948f74b9c1d5cd6851"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#aa44cdd80e41521948f74b9c1d5cd6851">unsubscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_listeners.findAndReplaceWithLast(&amp;listener);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> postSplitUpdate() <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) <span class="keyword">override</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> dispatchActorCreated(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> dispatchActorDestroyed(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> createActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** tkActors, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_px_actor_create_info.html">PxActorCreateInfo</a>* pxActorInfos, uint32_t count);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> destroyActors(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>** actors, uint32_t count);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a>&amp; m_manager;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; m_tkFamily;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>&amp; m_pxAsset;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_spawn_settings.html">ExtPxSpawnSettings</a> m_spawnSettings;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_shape_desc_template.html">ExtPxShapeDescTemplate</a>* m_pxShapeDescTemplate;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_actor_desc_template.html">ExtPxActorDescTemplate</a>* m_pxActorDescTemplate;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_ext_material.html">NvBlastExtMaterial</a>* m_material;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">bool</span> m_isSpawned;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; PxTransform m_initialTransform;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; PxVec3 m_initialScale;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">HashSet&lt;ExtPxActor*&gt;::type</a> m_actors;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActor*&gt;::type</a> m_culledActors;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;ExtPxListener*, 4&gt;::type</a> m_listeners;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;PxShape*&gt;::type</a> m_subchunkShapes;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActor*&gt;::type</a> m_newActorsBuffer;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;PxActorCreateInfo&gt;::type</a> m_newActorCreateInfo;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;PxActor*&gt;::type</a> m_physXActorsBuffer;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;ExtPxActor*&gt;::type</a> m_actorsBuffer;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;uint32_t&gt;::type</a> m_indicesScratch;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXFAMILYIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_family_impl_html_a9365359fbde1490bba586b1404bd4001"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_family_impl.html#a9365359fbde1490bba586b1404bd4001">Nv::Blast::ExtPxFamilyImpl::setMaterial</a></div><div class="ttdeci">virtual void setMaterial(const NvBlastExtMaterial *material) override</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamilyImpl.h:136</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_listener_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_listener_8h_source.html
index a53e2e8..4db46fc 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_listener_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_listener_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_listener_8h_source.ht
<div class="title">NvBlastExtPxListener.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_listener_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_listener.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a974e258bbfbd9cf333cc5b883b968ceb">onActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a2ffefb96cbdea998a8761a8017daf214">onActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_listener_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_listener.html">Nv::Blast::ExtPxListener</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxListener.h:48</div></div>
+<a href="_nv_blast_ext_px_listener_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXLISTENER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_listener.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a974e258bbfbd9cf333cc5b883b968ceb">onActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html#a2ffefb96cbdea998a8761a8017daf214">onActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXLISTENER_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_listener_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_listener.html">Nv::Blast::ExtPxListener</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxListener.h:48</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_actor.html">Nv::Blast::ExtPxActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxActor.h:57</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_listener_html_a2ffefb96cbdea998a8761a8017daf214"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_listener.html#a2ffefb96cbdea998a8761a8017daf214">Nv::Blast::ExtPxListener::onActorDestroyed</a></div><div class="ttdeci">virtual void onActorDestroyed(ExtPxFamily &amp;family, ExtPxActor &amp;actor)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_family.html">Nv::Blast::ExtPxFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxFamily.h:105</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_manager_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_manager_8h_source.html
index 0c06c7b..1de63fd 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_manager_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_manager_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_manager_8h_source.htm
<div class="title">NvBlastExtPxManager.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>PxJoint;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>ExtPxCollisionBuilder;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html"> 75</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205"> 77</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205">pxAsset</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4">actorDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669"> 89</a></span>&#160;<span class="keyword">typedef</span> physx::PxJoint* (*ExtPxCreateJointFunction)(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor0, <span class="keyword">const</span> physx::PxTransform&amp; localFrame0,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor1, <span class="keyword">const</span> physx::PxTransform&amp; localFrame1,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html"> 99</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* create(physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> useUserData = <span class="keyword">true</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* createCollisionBuilder(physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d"> 135</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d">FilterDataAttributes</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951da6e3c7382337952ba42cee04a0a36a21d"> 137</a></span>&#160; LEAF_CHUNK = 1,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* createFamily(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> createJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCreateJointFunction(<a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilyCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilies(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* getFamilyFromTkFamily(<a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* getActorFromPhysXActor(<span class="keyword">const</span> physx::PxRigidDynamic&amp; pxActor) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> physx::PxPhysics&amp; getPhysics() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; getFramework() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPxUserDataUsed() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setActorCountLimit(uint32_t limit) = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCountLimit() = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> uint32_t getPxActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;};</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXMANAGER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>PxRigidDynamic;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>PxJoint;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>general_PxIOStream2</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>PxFileBuf;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>ExtPxActor;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>ExtPxListener;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>ExtPxCollisionBuilder;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html"> 75</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205"> 77</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">ExtPxAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#aa91df24e1d2e95e1cc46b44b73003205">pxAsset</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html#a7cb289487618ef298735063553d2e1b4">actorDesc</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669"> 89</a></span>&#160;<span class="keyword">typedef</span> physx::PxJoint* (*ExtPxCreateJointFunction)(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor0, <span class="keyword">const</span> physx::PxTransform&amp; localFrame0,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor1, <span class="keyword">const</span> physx::PxTransform&amp; localFrame1,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html"> 99</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* create(physx::PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> useUserData = <span class="keyword">true</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_collision_builder.html">ExtPxCollisionBuilder</a>* createCollisionBuilder(physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d"> 135</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951d">FilterDataAttributes</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager.html#acdb64014cad3dc9b0f40450ea394951da6e3c7382337952ba42cee04a0a36a21d"> 137</a></span>&#160; LEAF_CHUNK = 1,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* createFamily(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> createJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCreateJointFunction(<a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilyCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> uint32_t getFamilies(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>** buffer, uint32_t bufferSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* getFamilyFromTkFamily(<a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* getActorFromPhysXActor(<span class="keyword">const</span> physx::PxRigidDynamic&amp; pxActor) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> physx::PxPhysics&amp; getPhysics() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; getFramework() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPxUserDataUsed() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setActorCountLimit(uint32_t limit) = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCountLimit() = 0;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> uint32_t getPxActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> subscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> unsubscribe(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener) = 0;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;};</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXMANAGER_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_family_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">Nv::Blast::ExtPxFamilyDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxManager.h:75</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_manager_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_manager_impl_8h_source.html
index b538b18..b99644e 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_manager_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_manager_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_manager_impl_8h_sourc
<div class="title">NvBlastExtPxManagerImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_manager_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXMANAGERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXMANAGERIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_map_8h.html">NvBlastHashMap.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;PxRigidDynamic.h&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a0ca3de54fb5af8b338b5f701dc8d6595"> 57</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html">ExtPxActorImpl</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a9a22ae97f7cc3e1f3396efe3d597f0dc"> 58</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2fda7b91dc156958f1f2d042cc1cb42a"> 60</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2fda7b91dc156958f1f2d042cc1cb42a">ExtPxManagerImpl</a>(PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp;framework, <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn, <span class="keywordtype">bool</span> usePxUserData)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; : m_physics(physics), m_framework(framework), m_createJointFn(createFn), m_usePxUserData(usePxUserData), m_actorCountLimit(0)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2b0d206a03443ae8ab2861425ca5290f"> 65</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2b0d206a03443ae8ab2861425ca5290f">~ExtPxManagerImpl</a>()</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* createFamily(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> createJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) <span class="keyword">override</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) <span class="keyword">override</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a33f144b09934e1bed275c6faf0a1e15d"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a33f144b09934e1bed275c6faf0a1e15d">setCreateJointFunction</a>(<a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn)<span class="keyword"> override</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_createJointFn = createFn;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aee8479e9494660eb799aaa409114f572"> 85</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aee8479e9494660eb799aaa409114f572">getFamilyCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> m_tkFamiliesMap.size();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae7f44d521ece34389b7f51aa2d183fb4"> 90</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae7f44d521ece34389b7f51aa2d183fb4">getFamilies</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>** buffer, uint32_t bufferSize)<span class="keyword"> const override</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint32_t index = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = const_cast&lt;ExtPxManagerImpl*&gt;(<span class="keyword">this</span>)-&gt;m_tkFamiliesMap.getIterator(); !it.done() &amp;&amp; index &lt; bufferSize; ++it)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; buffer[index++] = it-&gt;second;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> index;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a3752bab7af34c500b4ba79080a460ce5"> 100</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a3752bab7af34c500b4ba79080a460ce5">getFamilyFromTkFamily</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family)<span class="keyword"> const override</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">auto</span> entry = m_tkFamiliesMap.find(&amp;family);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> entry != <span class="keyword">nullptr</span> ? entry-&gt;second : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#afd3a28f8c33b57d925f2b19b098f2ad5"> 106</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#afd3a28f8c33b57d925f2b19b098f2ad5">getActorFromPhysXActor</a>(<span class="keyword">const</span> PxRigidDynamic&amp; pxActor)<span class="keyword"> const override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">auto</span> it = m_physXActorsMap.find(&amp;pxActor);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> it != <span class="keyword">nullptr</span> ? it-&gt;second : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a13b7e200ef9a562d6e14268367c28709"> 112</a></span>&#160; <span class="keyword">virtual</span> PxPhysics&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a13b7e200ef9a562d6e14268367c28709">getPhysics</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> m_physics;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ac0aeaf49ad77a15c1a9a62e95eab8774"> 117</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ac0aeaf49ad77a15c1a9a62e95eab8774">getFramework</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> m_framework;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a030542c7c57ba127637212003f80fbeb"> 122</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a030542c7c57ba127637212003f80fbeb">isPxUserDataUsed</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> m_usePxUserData;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ad6f0ddd3e0f247cf47e9737a1752cdba"> 127</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ad6f0ddd3e0f247cf47e9737a1752cdba">subscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_listeners.pushBack(&amp;listener);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aceb0cd85e8fb5cbfa0870333c8c2d55f"> 132</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aceb0cd85e8fb5cbfa0870333c8c2d55f">unsubscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_listeners.findAndReplaceWithLast(&amp;listener);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a77c681d51e39e77562b77d947202804f"> 137</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a77c681d51e39e77562b77d947202804f">setActorCountLimit</a>(uint32_t limit)<span class="keyword"> override</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_actorCountLimit = limit;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a269018f0f461681d0a697a82f4f1fa1f"> 142</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a269018f0f461681d0a697a82f4f1fa1f">getActorCountLimit</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> m_actorCountLimit;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7a5a662690b89bcc4c90a74f9504634d"> 147</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7a5a662690b89bcc4c90a74f9504634d">getPxActorCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> m_physXActorsMap.size();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7dc5e6cda145e733f2fbc3403a40ffef"> 155</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7dc5e6cda145e733f2fbc3403a40ffef">registerActor</a>(PxRigidDynamic* pxActor, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (m_usePxUserData)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; pxActor-&gt;userData = actor;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_physXActorsMap[pxActor] = actor;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#affa142468fe3a1f13f90f49236dab82c"> 164</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#affa142468fe3a1f13f90f49236dab82c">unregisterActor</a>(PxRigidDynamic* pxActor)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (m_usePxUserData)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; pxActor-&gt;userData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_physXActorsMap.erase(pxActor);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae459a32e33e05c409f91fabb169af940"> 173</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae459a32e33e05c409f91fabb169af940">registerFamily</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_tkFamiliesMap[&amp;family.<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#a6406d042c43fe14fa7c260608444e4d4">getTkFamily</a>()] = &amp;family;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2f70b68756339629c07f23bd30ebdc37"> 178</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2f70b68756339629c07f23bd30ebdc37">unregisterFamily</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_tkFamiliesMap.erase(&amp;family.<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#a6406d042c43fe14fa7c260608444e4d4">getTkFamily</a>());</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">void</span> updateJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a041e51c39fe05c1ec36ad409f7e872e2"> 188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a041e51c39fe05c1ec36ad409f7e872e2">dispatchActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>* listener : m_listeners)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; listener-&gt;onActorCreated(family, actor);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#af0b91be3b40e4a530d2b7382ce886599"> 194</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#af0b91be3b40e4a530d2b7382ce886599">dispatchActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp;actor)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>* listener : m_listeners)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; listener-&gt;onActorDestroyed(family, actor);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; PxPhysics&amp; m_physics;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; m_framework;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> m_createJointFn;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">bool</span> m_usePxUserData;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;ExtPxListener*, 8&gt;::type</a> m_listeners;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;const PxRigidDynamic*, ExtPxActor*&gt;::type</a> m_physXActorsMap;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;TkFamily*, ExtPxFamily*&gt;::type</a> m_tkFamiliesMap;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html">HashMap&lt;TkActor*, Array&lt;TkJoint*&gt;::type</a> &gt;::type m_incompleteJointMultiMap;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; uint32_t m_actorCountLimit;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;};</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXMANAGERIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_manager_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXMANAGERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXMANAGERIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_manager_8h.html">NvBlastExtPxManager.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_map_8h.html">NvBlastHashMap.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_family_8h.html">NvBlastExtPxFamily.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;PxRigidDynamic.h&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html">ExtPxManagerImpl</a>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a0ca3de54fb5af8b338b5f701dc8d6595"> 57</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor_impl.html">ExtPxActorImpl</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a9a22ae97f7cc3e1f3396efe3d597f0dc"> 58</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_family_impl.html">ExtPxFamilyImpl</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2fda7b91dc156958f1f2d042cc1cb42a"> 60</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2fda7b91dc156958f1f2d042cc1cb42a">ExtPxManagerImpl</a>(PxPhysics&amp; physics, <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp;framework, <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn, <span class="keywordtype">bool</span> usePxUserData)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; : m_physics(physics), m_framework(framework), m_createJointFn(createFn), m_usePxUserData(usePxUserData), m_actorCountLimit(0)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2b0d206a03443ae8ab2861425ca5290f"> 65</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2b0d206a03443ae8ab2861425ca5290f">~ExtPxManagerImpl</a>()</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* createFamily(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">ExtPxFamilyDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> createJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) <span class="keyword">override</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroyJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint) <span class="keyword">override</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a33f144b09934e1bed275c6faf0a1e15d"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a33f144b09934e1bed275c6faf0a1e15d">setCreateJointFunction</a>(<a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> createFn)<span class="keyword"> override</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_createJointFn = createFn;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aee8479e9494660eb799aaa409114f572"> 85</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aee8479e9494660eb799aaa409114f572">getFamilyCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> m_tkFamiliesMap.size();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae7f44d521ece34389b7f51aa2d183fb4"> 90</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae7f44d521ece34389b7f51aa2d183fb4">getFamilies</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>** buffer, uint32_t bufferSize)<span class="keyword"> const override</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint32_t index = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = const_cast&lt;ExtPxManagerImpl*&gt;(<span class="keyword">this</span>)-&gt;m_tkFamiliesMap.getIterator(); !it.done() &amp;&amp; index &lt; bufferSize; ++it)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; buffer[index++] = it-&gt;second;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> index;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a3752bab7af34c500b4ba79080a460ce5"> 100</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a3752bab7af34c500b4ba79080a460ce5">getFamilyFromTkFamily</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family)<span class="keyword"> const override</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">auto</span> entry = m_tkFamiliesMap.find(&amp;family);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> entry != <span class="keyword">nullptr</span> ? entry-&gt;second : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#afd3a28f8c33b57d925f2b19b098f2ad5"> 106</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#afd3a28f8c33b57d925f2b19b098f2ad5">getActorFromPhysXActor</a>(<span class="keyword">const</span> PxRigidDynamic&amp; pxActor)<span class="keyword"> const override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">auto</span> it = m_physXActorsMap.find(&amp;pxActor);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> it != <span class="keyword">nullptr</span> ? it-&gt;second : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a13b7e200ef9a562d6e14268367c28709"> 112</a></span>&#160; <span class="keyword">virtual</span> PxPhysics&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a13b7e200ef9a562d6e14268367c28709">getPhysics</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> m_physics;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ac0aeaf49ad77a15c1a9a62e95eab8774"> 117</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ac0aeaf49ad77a15c1a9a62e95eab8774">getFramework</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> m_framework;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a030542c7c57ba127637212003f80fbeb"> 122</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a030542c7c57ba127637212003f80fbeb">isPxUserDataUsed</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> m_usePxUserData;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ad6f0ddd3e0f247cf47e9737a1752cdba"> 127</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ad6f0ddd3e0f247cf47e9737a1752cdba">subscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_listeners.pushBack(&amp;listener);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aceb0cd85e8fb5cbfa0870333c8c2d55f"> 132</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#aceb0cd85e8fb5cbfa0870333c8c2d55f">unsubscribe</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>&amp; listener)<span class="keyword"> override</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_listeners.findAndReplaceWithLast(&amp;listener);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a77c681d51e39e77562b77d947202804f"> 137</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a77c681d51e39e77562b77d947202804f">setActorCountLimit</a>(uint32_t limit)<span class="keyword"> override</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_actorCountLimit = limit;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a269018f0f461681d0a697a82f4f1fa1f"> 142</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a269018f0f461681d0a697a82f4f1fa1f">getActorCountLimit</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> m_actorCountLimit;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7a5a662690b89bcc4c90a74f9504634d"> 147</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7a5a662690b89bcc4c90a74f9504634d">getPxActorCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> m_physXActorsMap.size();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7dc5e6cda145e733f2fbc3403a40ffef"> 155</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a7dc5e6cda145e733f2fbc3403a40ffef">registerActor</a>(PxRigidDynamic* pxActor, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>* actor)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (m_usePxUserData)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; pxActor-&gt;userData = actor;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_physXActorsMap[pxActor] = actor;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#affa142468fe3a1f13f90f49236dab82c"> 164</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#affa142468fe3a1f13f90f49236dab82c">unregisterActor</a>(PxRigidDynamic* pxActor)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (m_usePxUserData)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; pxActor-&gt;userData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_physXActorsMap.erase(pxActor);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae459a32e33e05c409f91fabb169af940"> 173</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#ae459a32e33e05c409f91fabb169af940">registerFamily</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_tkFamiliesMap[&amp;family.<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#a6406d042c43fe14fa7c260608444e4d4">getTkFamily</a>()] = &amp;family;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2f70b68756339629c07f23bd30ebdc37"> 178</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a2f70b68756339629c07f23bd30ebdc37">unregisterFamily</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_tkFamiliesMap.erase(&amp;family.<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html#a6406d042c43fe14fa7c260608444e4d4">getTkFamily</a>());</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">void</span> updateJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>&amp; joint);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a041e51c39fe05c1ec36ad409f7e872e2"> 188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#a041e51c39fe05c1ec36ad409f7e872e2">dispatchActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>* listener : m_listeners)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; listener-&gt;onActorCreated(family, actor);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#af0b91be3b40e4a530d2b7382ce886599"> 194</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager_impl.html#af0b91be3b40e4a530d2b7382ce886599">dispatchActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp;actor)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a>* listener : m_listeners)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; listener-&gt;onActorDestroyed(family, actor);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; PxPhysics&amp; m_physics;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; m_framework;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#ad850cb90e735a499140c9b9dee734669">ExtPxCreateJointFunction</a> m_createJointFn;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">bool</span> m_usePxUserData;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;ExtPxListener*, 8&gt;::type</a> m_listeners;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;const PxRigidDynamic*, ExtPxActor*&gt;::type</a> m_physXActorsMap;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;TkFamily*, ExtPxFamily*&gt;::type</a> m_tkFamiliesMap;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html">HashMap&lt;TkActor*, Array&lt;TkJoint*&gt;::type</a> &gt;::type m_incompleteJointMultiMap;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; uint32_t m_actorCountLimit;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;};</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXMANAGERIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_px_family_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_px_family_desc.html">Nv::Blast::ExtPxFamilyDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxManager.h:75</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_serialization_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_serialization_8h_source.html
index 07cebd3..bcd4beb 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_serialization_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_serialization_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_serialization_8h_sour
<div class="title">NvBlastExtPxSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html">ExtPxObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417ba3aa2dc54683584ca4747dbbe64eedfb1"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a1cc333d504d2beebb948adf10f7e7c8c">NvBlastExtPxSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a5c2cf92203363fee62d65119f2f7defc">NvBlastExtSerializationSerializeExtPxAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a>* asset);</div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html">ExtPxObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417b">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_px_object_type_i_d.html#a416ed61e2f3847ceaab50ddd9512417ba3aa2dc54683584ca4747dbbe64eedfb1"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a1cc333d504d2beebb948adf10f7e7c8c">NvBlastExtPxSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, physx::PxPhysics&amp; physics, physx::PxCooking&amp; cooking, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_px_serialization_8h.html#a5c2cf92203363fee62d65119f2f7defc">NvBlastExtSerializationSerializeExtPxAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a>* asset);</div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="_nv_blast_ext_px_serialization_8h_html_a1cc333d504d2beebb948adf10f7e7c8c"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8h.html#a1cc333d504d2beebb948adf10f7e7c8c">NvBlastExtPxSerializerLoadSet</a></div><div class="ttdeci">NVBLAST_API size_t NvBlastExtPxSerializerLoadSet(Nv::Blast::TkFramework &amp;framework, physx::PxPhysics &amp;physics, physx::PxCooking &amp;cooking, Nv::Blast::ExtSerialization &amp;serialization)</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_asset.html">Nv::Blast::ExtPxAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxAsset.h:123</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_serializer_c_a_p_n_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_serializer_c_a_p_n_8h_source.html
index 6e3c73d..01a84be 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_serializer_c_a_p_n_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_serializer_c_a_p_n_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_serializer_c_a_p_n_8h
<div class="title">NvBlastExtPxSerializerCAPN.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_serializer_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ext_px_asset_d_t_o_8h.html">ExtPxAssetDTO.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;ExtPxAsset, Serialization::ExtPxAsset::Reader, Serialization::ExtPxAsset::Builder&gt;::serializeIntoBuilder(Serialization::ExtPxAsset::Builder&amp; assetBuilder, <span class="keyword">const</span> ExtPxAsset* asset)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">ExtPxAssetDTO::serialize</a>(assetBuilder, asset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> ExtPxAsset* ExtSerializationCAPN&lt;ExtPxAsset, Serialization::ExtPxAsset::Reader, Serialization::ExtPxAsset::Builder&gt;::deserializeFromStreamReader(capnp::InputStreamMessageReader &amp;message)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; Serialization::ExtPxAsset::Reader reader = message.getRoot&lt;Serialization::ExtPxAsset&gt;();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> ExtPxAssetDTO::deserialize(reader);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;ExtPxAsset, Serialization::ExtPxAsset::Reader, Serialization::ExtPxAsset::Builder&gt;::serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> ExtPxAsset* asset)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; Serialization::ExtPxAsset::Builder assetBuilder = message.initRoot&lt;Serialization::ExtPxAsset&gt;();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> serializeIntoBuilder(assetBuilder, asset);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="bt_vector3_8h_html_aa97ad00bf0550636fd7e2e701fb7067f"><div class="ttname"><a href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">serialize</a></div><div class="ttdeci">SIMD_FORCE_INLINE void serialize(struct btVector3Data &amp;dataOut) const</div></div>
+<a href="_nv_blast_ext_px_serializer_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ext_px_asset_d_t_o_8h.html">ExtPxAssetDTO.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;ExtPxAsset, Serialization::ExtPxAsset::Reader, Serialization::ExtPxAsset::Builder&gt;::serializeIntoBuilder(Serialization::ExtPxAsset::Builder&amp; assetBuilder, <span class="keyword">const</span> ExtPxAsset* asset)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">ExtPxAssetDTO::serialize</a>(assetBuilder, asset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> ExtPxAsset* ExtSerializationCAPN&lt;ExtPxAsset, Serialization::ExtPxAsset::Reader, Serialization::ExtPxAsset::Builder&gt;::deserializeFromStreamReader(capnp::InputStreamMessageReader &amp;message)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; Serialization::ExtPxAsset::Reader reader = message.getRoot&lt;Serialization::ExtPxAsset&gt;();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> ExtPxAssetDTO::deserialize(reader);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;ExtPxAsset, Serialization::ExtPxAsset::Reader, Serialization::ExtPxAsset::Builder&gt;::serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> ExtPxAsset* asset)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; Serialization::ExtPxAsset::Builder assetBuilder = message.initRoot&lt;Serialization::ExtPxAsset&gt;();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> serializeIntoBuilder(assetBuilder, asset);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="bt_vector3_8h_html_aa97ad00bf0550636fd7e2e701fb7067f"><div class="ttname"><a href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">serialize</a></div><div class="ttdeci">SIMD_FORCE_INLINE void serialize(struct btVector3Data &amp;dataOut) const</div></div>
<div class="ttc" id="_nv_blast_ext_serialization_c_a_p_n_8h_html"><div class="ttname"><a href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_px_asset_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_asset_8h.html">NvBlastExtPxAsset.h</a></div></div>
<div class="ttc" id="group__foundation_html_ga36a01a4a51968418a26b06da7e1ad5d0"><div class="ttname"><a href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a></div><div class="ttdeci">#define NV_INLINE</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:350</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_serializer_r_a_w_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_serializer_r_a_w_8h_source.html
index cac85e9..9c43f3c 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_serializer_r_a_w_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_serializer_r_a_w_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_serializer_r_a_w_8h_s
<div class="title">NvBlastExtPxSerializerRAW.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_serializer_r_a_w_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>ExtIStream;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;ExtPxAsset* <a class="code" href="namespace_nv_1_1_blast.html#a8aed6448b585047aa8d61255959eb316">deserializeExtPxAsset</a>(ExtIStream&amp; stream, TkFramework&amp; framework, physx::PxPhysics&amp; physics);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_serializer_r_a_w_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>PxPhysics;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span>ExtPxAsset;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>ExtIStream;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;ExtPxAsset* <a class="code" href="namespace_nv_1_1_blast.html#a8aed6448b585047aa8d61255959eb316">deserializeExtPxAsset</a>(ExtIStream&amp; stream, TkFramework&amp; framework, physx::PxPhysics&amp; physics);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a8aed6448b585047aa8d61255959eb316"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a8aed6448b585047aa8d61255959eb316">Nv::Blast::deserializeExtPxAsset</a></div><div class="ttdeci">ExtPxAsset * deserializeExtPxAsset(ExtIStream &amp;stream, TkFramework &amp;framework, physx::PxPhysics &amp;physics)</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/docs/source_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html
index 1219c1f..473d15e 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_stress_solver_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_stress_solver_8h_sour
<div class="title">NvBlastExtPxStressSolver.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_stress_solver_8h.html">NvBlastExtStressSolver.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;common/PxRenderBuffer.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// forward declarations</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>&amp; getSolver() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keywordtype">bool</span> doDamage = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">Nv::Blast::ExtStressSolverSettings</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:56</div></div>
+<a href="_nv_blast_ext_px_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_stress_solver_8h.html">NvBlastExtStressSolver.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;common/PxRenderBuffer.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// forward declarations</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a>* create(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>&amp; getSolver() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keywordtype">bool</span> doDamage = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">Nv::Blast::ExtStressSolverSettings</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:56</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_stress_solver_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">Nv::Blast::ExtPxStressSolver</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxStressSolver.h:53</div></div>
<div class="ttc" id="_nv_blast_ext_stress_solver_8h_html"><div class="ttname"><a href="_nv_blast_ext_stress_solver_8h.html">NvBlastExtStressSolver.h</a></div></div>
<div class="ttc" id="group__foundation_html_gab099143f4f29cc000cff7819bbf0f9e0"><div class="ttname"><a href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a></div><div class="ttdeci">#define NV_DLL_EXPORT</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:293</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_stress_solver_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_stress_solver_impl_8h_source.html
index 5267cf4..f2dcd8c 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_stress_solver_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_stress_solver_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_stress_solver_impl_8h
<div class="title">NvBlastExtPxStressSolverImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_stress_solver_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXSTRESSSOLVERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXSTRESSSOLVERIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_stress_solver_8h.html">NvBlastExtPxStressSolver.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html">ExtPxStressSolverImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a>, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html">ExtPxStressSolverImpl</a>)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#af63c92e864382d5a1b9b65498b454222">ExtPxStressSolverImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#aebad8a78594d372130916c841f08f858">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a8f57dd7ff75b9035911e091ec43b4728"> 55</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a8f57dd7ff75b9035911e091ec43b4728">getSolver</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> *m_solver;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#aa190afe706bd1e917926097aff923191">update</a>(<span class="keywordtype">bool</span> doDamage) <span class="keyword">override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a9786e77cf9881fe3522f0656b0d3232e">onActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) <span class="keyword">final</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a272c49816f9028629c7bc9ff38ffac8f">onActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) <span class="keyword">final</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html">ExtPxStressSolverImpl</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; m_family;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>* m_solver;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">HashSet&lt;ExtPxActor*&gt;::type</a> m_actors;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXSTRESSSOLVERIMPL_H</span></div><div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
+<a href="_nv_blast_ext_px_stress_solver_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXSTRESSSOLVERIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXSTRESSSOLVERIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_stress_solver_8h.html">NvBlastExtPxStressSolver.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_listener_8h.html">NvBlastExtPxListener.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html">ExtPxStressSolverImpl</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver.html">ExtPxStressSolver</a>, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_listener.html">ExtPxListener</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd">NV_NOCOPY</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html">ExtPxStressSolverImpl</a>)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#af63c92e864382d5a1b9b65498b454222">ExtPxStressSolverImpl</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#aebad8a78594d372130916c841f08f858">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a8f57dd7ff75b9035911e091ec43b4728"> 55</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a8f57dd7ff75b9035911e091ec43b4728">getSolver</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> *m_solver;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#aa190afe706bd1e917926097aff923191">update</a>(<span class="keywordtype">bool</span> doDamage) <span class="keyword">override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a9786e77cf9881fe3522f0656b0d3232e">onActorCreated</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) <span class="keyword">final</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a272c49816f9028629c7bc9ff38ffac8f">onActorDestroyed</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_actor.html">ExtPxActor</a>&amp; actor) <span class="keyword">final</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html">ExtPxStressSolverImpl</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; m_family;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>* m_solver;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">HashSet&lt;ExtPxActor*&gt;::type</a> m_actors;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTPXSTRESSSOLVERIMPL_H</span></div><div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_hash_set_html_abb3e1de36be2fb129233251f720c0d93"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">Nv::Blast::HashSet::type</a></div><div class="ttdeci">physx::shdfnd::HashSet&lt; Key, HashFn, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastHashSet.h:47</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">Nv::Blast::ExtStressSolverSettings</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:56</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl_html_a9786e77cf9881fe3522f0656b0d3232e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_px_stress_solver_impl.html#a9786e77cf9881fe3522f0656b0d3232e">Nv::Blast::ExtPxStressSolverImpl::onActorCreated</a></div><div class="ttdeci">virtual void onActorCreated(ExtPxFamily &amp;family, ExtPxActor &amp;actor) final</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_task_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_task_8h_source.html
index 92a0a73..b3e3d58 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_task_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_task_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_task_8h_source.html',
<div class="title">NvBlastExtPxTask.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_task_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxTaskManager;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99"> 58</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99">~ExtGroupTaskManager</a>() {}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a>* create(physx::PxTaskManager&amp;, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setGroup(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>*) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> uint32_t process(uint32_t workerCount = 0) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> wait(<span class="keywordtype">bool</span> block = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTPXTASK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_px_task_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXTASK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>PxTaskManager;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99"> 58</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html#a756207678a22314a8a7a2232819d4e99">~ExtGroupTaskManager</a>() {}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a>* create(physx::PxTaskManager&amp;, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setGroup(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>*) = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> uint32_t process(uint32_t workerCount = 0) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> wait(<span class="keywordtype">bool</span> block = <span class="keyword">true</span>) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTPXTASK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_group_task_manager_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">Nv::Blast::ExtGroupTaskManager</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxTask.h:55</div></div>
<div class="ttc" id="group__foundation_html_gab099143f4f29cc000cff7819bbf0f9e0"><div class="ttname"><a href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a></div><div class="ttdeci">#define NV_DLL_EXPORT</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:293</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_px_task_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_px_task_impl_8h_source.html
index 2202a34..5edc8fc 100755
--- a/docs/source_docs/files/_nv_blast_ext_px_task_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_px_task_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_px_task_impl_8h_source.h
<div class="title">NvBlastExtPxTaskImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_px_task_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXTASKIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXTASKIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_task_8h.html">NvBlastExtPxTask.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxTask.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab3d12576fb206679638976b968c337ac"> 54</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab3d12576fb206679638976b968c337ac">ExtTaskSync</a>(uint32_t count) : m_count(count) {}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a0a09c3ba88795544087c0294eada55e9"> 59</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a0a09c3ba88795544087c0294eada55e9">wait</a>()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; std::unique_lock&lt;std::mutex&gt; lk(m_mutex);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_cv.wait(lk, [&amp;] { <span class="keywordflow">return</span> m_count == 0; });</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a1f7ec3a1ed24ec7c61576437b4904c84"> 68</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a1f7ec3a1ed24ec7c61576437b4904c84">notify</a>()</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">//PERF_SCOPE_H(&quot;TaskSync::notify&quot;);</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::unique_lock&lt;std::mutex&gt; lk(m_mutex);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (m_count &gt; 0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_count--;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (m_count == 0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; lk.unlock();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_cv.notify_one();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab0062a114856ba591a00c2c959ef6e54"> 86</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab0062a114856ba591a00c2c959ef6e54">isDone</a>()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; std::unique_lock&lt;std::mutex&gt; lk(m_mutex);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> m_count == 0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#aac5c4079439a127fb12acdad3354af96"> 95</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#aac5c4079439a127fb12acdad3354af96">setCount</a>(uint32_t count)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_count = count;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; std::mutex m_mutex;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::condition_variable m_cv;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t m_count;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;};</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html"> 110</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a0345b40d395da4c81491e31c68bf798e"> 113</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a0345b40d395da4c81491e31c68bf798e">ExtAtomicCounter</a>() : m_current(0), m_maxCount(0) {}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a3bd250358ea712c595f2e18153269a11"> 115</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a3bd250358ea712c595f2e18153269a11">isValid</a>(uint32_t val)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> val &lt; m_maxCount;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#afa4d07170cd6a791f9ab7fadf55f46ab"> 120</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#afa4d07170cd6a791f9ab7fadf55f46ab">next</a>()</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> m_current.fetch_add(1);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#ae90f8784bc350acbc98a7d040db79415"> 125</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#ae90f8784bc350acbc98a7d040db79415">reset</a>(uint32_t maxCount)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_maxCount = maxCount;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_current = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; std::atomic&lt;uint32_t&gt; m_current;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t m_maxCount;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html"> 139</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html">ExtGroupWorkerTask</a> : <span class="keyword">public</span> physx::PxLightCpuTask</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a5e7ccffdbf66b0925ea341df3c41d9fe"> 142</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a5e7ccffdbf66b0925ea341df3c41d9fe">ExtGroupWorkerTask</a>() : PxLightCpuTask(), m_group(nullptr), m_counter(nullptr), m_sync(nullptr)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a274c12508454bf2bbf3cb85a9e27861a"> 146</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a274c12508454bf2bbf3cb85a9e27861a">setup</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group, <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a>* counter, <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a>* sync)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_group = group;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_counter = counter;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_sync = sync;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#ad601fd18ee694bc8d04ca8f4da5a54de"> 153</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#ad601fd18ee694bc8d04ca8f4da5a54de">run</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">Nv::Blast::TkGroupWorker</a>* worker = m_group-&gt;acquireWorker();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint32_t jobID = m_counter-&gt;next();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">while</span> (m_counter-&gt;isValid(jobID))</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; worker-&gt;<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">process</a>(jobID);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; jobID = m_counter-&gt;next();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_group-&gt;returnWorker(worker);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#af4fbab415103c2efa2fd093b641daf8a"> 165</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#af4fbab415103c2efa2fd093b641daf8a">release</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; PxLightCpuTask::release();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// release the sync last</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_sync-&gt;notify();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a97065fab9dbf61e55453869d3d226af3"> 173</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a97065fab9dbf61e55453869d3d226af3">getName</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;BlastGroupWorkerTask&quot;</span>; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* m_group;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a>* m_counter;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a>* m_sync;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;};</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html"> 185</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html">ExtGroupTaskManagerImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html#a4c4d9dbbcecc8aab60b52af563246ce6"> 188</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html#a4c4d9dbbcecc8aab60b52af563246ce6">ExtGroupTaskManagerImpl</a>(physx::PxTaskManager&amp; taskManager, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; : m_taskManager(taskManager), m_sync(0), m_group(group) {}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// ExtGroupTaskManager API</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setGroup(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>*) <span class="keyword">override</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> uint32_t process(uint32_t) <span class="keyword">override</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a0a09c3ba88795544087c0294eada55e9">wait</a>(<span class="keywordtype">bool</span> block) <span class="keyword">override</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32_t TASKS_MAX_COUNT = 16;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; physx::PxTaskManager&amp; m_taskManager;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a> m_counter;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html">ExtGroupWorkerTask</a> m_tasks[TASKS_MAX_COUNT];</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a> m_sync;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* m_group;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTPXTASKIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_task_sync_html_ab0062a114856ba591a00c2c959ef6e54"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab0062a114856ba591a00c2c959ef6e54">Nv::Blast::ExtTaskSync::isDone</a></div><div class="ttdeci">bool isDone()</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxTaskImpl.h:86</div></div>
+<a href="_nv_blast_ext_px_task_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTPXTASKIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTPXTASKIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_task_8h.html">NvBlastExtPxTask.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxTask.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab3d12576fb206679638976b968c337ac"> 54</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab3d12576fb206679638976b968c337ac">ExtTaskSync</a>(uint32_t count) : m_count(count) {}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a0a09c3ba88795544087c0294eada55e9"> 59</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a0a09c3ba88795544087c0294eada55e9">wait</a>()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; std::unique_lock&lt;std::mutex&gt; lk(m_mutex);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_cv.wait(lk, [&amp;] { <span class="keywordflow">return</span> m_count == 0; });</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a1f7ec3a1ed24ec7c61576437b4904c84"> 68</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a1f7ec3a1ed24ec7c61576437b4904c84">notify</a>()</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">//PERF_SCOPE_H(&quot;TaskSync::notify&quot;);</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::unique_lock&lt;std::mutex&gt; lk(m_mutex);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (m_count &gt; 0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_count--;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (m_count == 0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; lk.unlock();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_cv.notify_one();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab0062a114856ba591a00c2c959ef6e54"> 86</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab0062a114856ba591a00c2c959ef6e54">isDone</a>()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; std::unique_lock&lt;std::mutex&gt; lk(m_mutex);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> m_count == 0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_task_sync.html#aac5c4079439a127fb12acdad3354af96"> 95</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#aac5c4079439a127fb12acdad3354af96">setCount</a>(uint32_t count)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_count = count;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; std::mutex m_mutex;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::condition_variable m_cv;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t m_count;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;};</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html"> 110</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a0345b40d395da4c81491e31c68bf798e"> 113</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a0345b40d395da4c81491e31c68bf798e">ExtAtomicCounter</a>() : m_current(0), m_maxCount(0) {}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a3bd250358ea712c595f2e18153269a11"> 115</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#a3bd250358ea712c595f2e18153269a11">isValid</a>(uint32_t val)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> val &lt; m_maxCount;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#afa4d07170cd6a791f9ab7fadf55f46ab"> 120</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#afa4d07170cd6a791f9ab7fadf55f46ab">next</a>()</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> m_current.fetch_add(1);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#ae90f8784bc350acbc98a7d040db79415"> 125</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html#ae90f8784bc350acbc98a7d040db79415">reset</a>(uint32_t maxCount)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_maxCount = maxCount;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_current = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; std::atomic&lt;uint32_t&gt; m_current;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t m_maxCount;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html"> 139</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html">ExtGroupWorkerTask</a> : <span class="keyword">public</span> physx::PxLightCpuTask</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a5e7ccffdbf66b0925ea341df3c41d9fe"> 142</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a5e7ccffdbf66b0925ea341df3c41d9fe">ExtGroupWorkerTask</a>() : PxLightCpuTask(), m_group(nullptr), m_counter(nullptr), m_sync(nullptr)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a274c12508454bf2bbf3cb85a9e27861a"> 146</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a274c12508454bf2bbf3cb85a9e27861a">setup</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group, <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a>* counter, <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a>* sync)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_group = group;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_counter = counter;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_sync = sync;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#ad601fd18ee694bc8d04ca8f4da5a54de"> 153</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#ad601fd18ee694bc8d04ca8f4da5a54de">run</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">Nv::Blast::TkGroupWorker</a>* worker = m_group-&gt;acquireWorker();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint32_t jobID = m_counter-&gt;next();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">while</span> (m_counter-&gt;isValid(jobID))</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; worker-&gt;<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">process</a>(jobID);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; jobID = m_counter-&gt;next();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_group-&gt;returnWorker(worker);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#af4fbab415103c2efa2fd093b641daf8a"> 165</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#af4fbab415103c2efa2fd093b641daf8a">release</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; PxLightCpuTask::release();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// release the sync last</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_sync-&gt;notify();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a97065fab9dbf61e55453869d3d226af3"> 173</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html#a97065fab9dbf61e55453869d3d226af3">getName</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <span class="stringliteral">&quot;BlastGroupWorkerTask&quot;</span>; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* m_group;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a>* m_counter;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a>* m_sync;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;};</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html"> 185</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html">ExtGroupTaskManagerImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager.html">ExtGroupTaskManager</a></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html#a4c4d9dbbcecc8aab60b52af563246ce6"> 188</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html#a4c4d9dbbcecc8aab60b52af563246ce6">ExtGroupTaskManagerImpl</a>(physx::PxTaskManager&amp; taskManager, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; : m_taskManager(taskManager), m_sync(0), m_group(group) {}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// ExtGroupTaskManager API</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setGroup(<a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>*) <span class="keyword">override</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">virtual</span> uint32_t process(uint32_t) <span class="keyword">override</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html#a0a09c3ba88795544087c0294eada55e9">wait</a>(<span class="keywordtype">bool</span> block) <span class="keyword">override</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32_t TASKS_MAX_COUNT = 16;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; physx::PxTaskManager&amp; m_taskManager;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_atomic_counter.html">ExtAtomicCounter</a> m_counter;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_group_worker_task.html">ExtGroupWorkerTask</a> m_tasks[TASKS_MAX_COUNT];</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_task_sync.html">ExtTaskSync</a> m_sync;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* m_group;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTPXTASKIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_task_sync_html_ab0062a114856ba591a00c2c959ef6e54"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_task_sync.html#ab0062a114856ba591a00c2c959ef6e54">Nv::Blast::ExtTaskSync::isDone</a></div><div class="ttdeci">bool isDone()</div><div class="ttdef"><b>Definition:</b> NvBlastExtPxTaskImpl.h:86</div></div>
<div class="ttc" id="_nv_blast_ext_px_task_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_task_8h.html">NvBlastExtPxTask.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_group_task_manager_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_group_task_manager_impl.html">Nv::Blast::ExtGroupTaskManagerImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxTaskImpl.h:185</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_group_worker_html_adf15d994a12f0c0b18dd0a878b1ddd2f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">Nv::Blast::TkGroupWorker::process</a></div><div class="ttdeci">virtual void process(uint32_t jobId)=0</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_r_t_8h_source.html b/docs/source_docs/files/_nv_blast_ext_r_t_8h_source.html
index e440a97..c89fcd7 100644
--- a/docs/source_docs/files/_nv_blast_ext_r_t_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_r_t_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_r_t_8h_source.html','');
<div class="title">NvBlastExtRT.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_r_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTRT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTRT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;cinttypes&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//#define USE_MERGED_MESH</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#ab61e2620c8f2917beffb61e2d42cbc88"> 40</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_VERTICES 262144</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#aa56085b830bbfc750734bc2fec8c0070"> 41</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_EDGES_PER_CHUNK 16384</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#a9cce5b0c1e6c644cdf4d10ca630fb07d"> 42</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_CHUNKS 256</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>Vertex;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">class </span>VertexWelding;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">struct </span>DamagePattern;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html"> 54</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f">parentEdge</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f"> 59</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f">status</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1">pIdx</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba"> 62</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> parentFacet &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html"> 68</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a"> 70</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5"> 71</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d"> 72</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f"> 73</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a> = -1;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134">getInversed</a>()</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> ret;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a> = end;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a> = start;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f">adjacentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html"> 86</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">//set edges, vertices and ffResult counters to 0</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetEdges() = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> copyVerticesAndResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* other) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> uint32_t edgesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> uint32_t verticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t ffResultCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">//Thread safe add, return index in buffer</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp;) = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> uint32_t addVertex(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp;) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> uint32_t addFfResult(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp;) = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//Thread safe, increment counter and return reference to last element</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp; getNewEdge() = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; getNewVertex() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; getNewFfResult() = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">//User allocated buffers should have size more than return values of above function </span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#af16c26c7418b7887e042f4cdb0d3e408"> 111</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* edges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a9b53f2d6ac89e52b307c4cc7ed891690"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a74ca8e839974a75618e2e23e63922f84"> 113</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>* ffResult = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracturer.html"> 120</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_generator.html"> 126</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html"> 132</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">FractureDesc</a></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a17f1aec6d7cae1b05535897faedd0239"> 134</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a>* fr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a8afba8dc673e5104eb22daae072edc52"> 135</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* model = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#aaf073bd947a0518fe6743b32552d913d"> 136</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* cell = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#afc2f45708d3f78e519e108f197823001"> 137</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* modelAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a0727c80c4fc8719fe848aaaccb20f278"> 138</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* cellAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a3b6c165b5a5656f451c3e1495415911b"> 139</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a6fddc4ebaebd6157eb9a7c869a2ac815"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a"> 141</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a">chunkId</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html"> 144</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8"> 146</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8">materialIndex</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8"> 147</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8">smoothingGroup</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html"> 150</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">MeshDesc</a></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a13aab51982ee023ece211a00492d3317"> 152</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a>* tr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a62b3efe6edcc0e9709bf87630b327fc2"> 153</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* bEdges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ae0d86d4604dafe840dff592dc64df24c"> 154</a></span>&#160; uint32_t edesCount = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ab5495afac84f3f3ab81fc67915e6bde8"> 155</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* inVertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#af324b167e69af8df2eaeb40362e2a361"> 156</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA = <span class="keyword">nullptr</span>; <span class="comment">// used to gather additional data from source mesh, for example material ID </span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a9447e8d8b3c43992fe40dee1cbd9be81"> 157</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t.html"> 160</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html"> 164</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html">Stage</a></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">enum</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4af28c3ba8009483e0f4f2de1f28d0d400"> 168</a></span>&#160; FACET_FACET_TEST = 1,</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a1591fbb59b0ef6d1746ea47560ccb580"> 169</a></span>&#160; RETAIN_FROM_FRACTURED_MESH = 2,</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a289e75c83bc97396f0ed62d78162df1d"> 170</a></span>&#160; RETAIN_FROM_PATTERN = 4,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923"> 172</a></span>&#160; ALL = 0xFFFFFFFF</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; };</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processMesh(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> uint32_t getResultChunkCount() = 0;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* getVertexBuffer() = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexBuffer() = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> uint32_t* getVertexOffset() = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexOffset() = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* getPerTriangleData() = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> dumpChunksToObj(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be"> 187</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be">PatternFacetType</a> { <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea0d1d9155e8519d41f5bf8e02e94d3d1c">GOOD_FACET</a> = 0, <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea7a5a857c21346bed3fbf7d94a0c3d4e7">INFINITE_FACET</a> = 0xffffff };</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html"> 193</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d"> 196</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>(uint32_t i, uint32_t j) : l1(i), l2(j) {};</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d">l1</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b"> 198</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b">l2</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>&amp; lk) <span class="keyword">const</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> uint32_t in) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html"> 204</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">ChunkGraph</a></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> eraseNode(uint32_t index) = 0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a3712fffabb62d07f594c88e7016d44c1"> 209</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>* links = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a89e568da158d43176fd56a41175ec998"> 210</a></span>&#160; uint32_t* dirtyChunks = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a6e7bce099f58dc2e6c85133cc03dea86"> 211</a></span>&#160; uint32_t linksCount = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4a9474b4a38212d5987afa23db264649"> 212</a></span>&#160; uint32_t dirtyChunksCount = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a36754ed70616d387264cb9bd25331fa7"> 213</a></span>&#160; uint32_t newlyAddedCount = 0;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4966d0c64bd9e8c2a5cde61916fc9947"> 214</a></span>&#160; uint32_t maxLinksCount = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; };</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">Nv::Blast::FractureRT</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a4b33d66b71faced9cea15821ab6d2679">NvBlastExtRTCreateFractureRT</a>(uint32_t threads = 1);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Nv::Blast::Fracturer</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a8dd527c217f5b6577b09e81cf8f881a1">NvBlastExtRTCreateFracturer</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a63cb5e25050cb57dd112232792d51165">NvBlastExtRTDoFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">Nv::Blast::FractureDesc</a>&amp; desc, int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">Nv::Blast::FractureRT::Stage::ALL</a>, int32_t threadId = 0, int32_t threadCount = 1);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">Nv::Blast::MeshGenerator</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a384cc36b855ef7a84ae47bd17f1e45bb">NvBlastExtRTCreateMeshGenerator</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#ac7e2861ee04820dce18c142b2f7baedf">NvBlastExtRTBuildMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">Nv::Blast::MeshDesc</a> dsc, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* outVertices, uint32_t&amp; vCount, uint32_t* indices, <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">Nv::Blast::PerTriangleAdditionalData</a>* adata, uint32_t maxICount, uint32_t maxVCount);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#ad5ec62cdb5d0f84e129fab31cc62f7d8">NvBlastExtRTGetChunksToUnite</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, <span class="keyword">const</span> uint32_t* voffsets, uint32_t chunksCount, uint32_t* chunksToUnite);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a1abc5fbcc99dd9c1b84f9fa6bb51609a">NvBlastExtRTDetectIslands</a>(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, uint32_t* offsets, <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds, uint32_t chunkCount, <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* graph, uint32_t* islandChunks, uint32_t* islandOffsets);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a70b1eff9af90c4a0872111a1c8e99d0e">NvBlastExtRTCreateChunkGraph</a>(uint32_t maxLinksCount = 4096);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_r_t_8h.html#a4859194da9d8526051290eb24b6f7b67">NvBlastExtRTCookMergedMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTRT_H</span></div><div class="ttc" id="_nv_blast_ext_r_t_8h_html_a384cc36b855ef7a84ae47bd17f1e45bb"><div class="ttname"><a href="_nv_blast_ext_r_t_8h.html#a384cc36b855ef7a84ae47bd17f1e45bb">NvBlastExtRTCreateMeshGenerator</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::MeshGenerator * NvBlastExtRTCreateMeshGenerator()</div></div>
+<a href="_nv_blast_ext_r_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTRT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTRT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;cinttypes&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//#define USE_MERGED_MESH</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#ab61e2620c8f2917beffb61e2d42cbc88"> 40</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_VERTICES 262144</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#aa56085b830bbfc750734bc2fec8c0070"> 41</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_EDGES_PER_CHUNK 16384</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_ext_r_t_8h.html#a9cce5b0c1e6c644cdf4d10ca630fb07d"> 42</a></span>&#160;<span class="preprocessor">#define BLASTRT_MAX_CHUNKS 256</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>Vertex;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">class </span>VertexWelding;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">struct </span>DamagePattern;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html"> 54</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822"> 56</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f"> 58</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a7a1ce965b8674db6e9e890163edca94f">parentEdge</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f"> 59</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#ad31fb454d7eac900be5c2908c6d52f6f">status</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1"> 60</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a77eb266e49dea84dba47bf0e448ae6a1">pIdx</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba"> 62</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; in)<span class="keyword"> const</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> parentFacet &lt; in.<a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html"> 68</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a"> 70</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5"> 71</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d"> 72</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f"> 73</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a> = -1;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134"> 75</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad82dcc8e5aa25750fc43fa8b1846b134">getInversed</a>()</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a> ret;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ac84910a5ff1379a4a1dd0082ecd8630a">start</a> = end;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#ad4ff096fd1a88c4113264933cee243f5">end</a> = start;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a6f00a0c95f816285961c8c1ada80ca8d">parentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a5550650f92a810a13f1876bb99d2d822">parentFacet</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; ret.<a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html#a64a87fc1e8dcd705126bf290080df25f">adjacentFacet</a> = <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a4a580c671ad020850269aa6ff3cfb2f0">adjacentFacet</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html"> 86</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">//set edges, vertices and ffResult counters to 0</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetEdges() = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> copyVerticesAndResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* other) = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> uint32_t edgesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> uint32_t verticesCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t ffResultCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">//Thread safe add, return index in buffer</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> uint32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp;) = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> uint32_t addVertex(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp;) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> uint32_t addFfResult(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp;) = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">//Thread safe, increment counter and return reference to last element</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp; getNewEdge() = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; getNewVertex() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; getNewFfResult() = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">//User allocated buffers should have size more than return values of above function </span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#af16c26c7418b7887e042f4cdb0d3e408"> 111</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* edges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a9b53f2d6ac89e52b307c4cc7ed891690"> 112</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html#a74ca8e839974a75618e2e23e63922f84"> 113</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>* ffResult = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracturer.html"> 120</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_mesh_generator.html"> 126</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html"> 132</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">FractureDesc</a></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a17f1aec6d7cae1b05535897faedd0239"> 134</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a>* fr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a8afba8dc673e5104eb22daae072edc52"> 135</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* model = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#aaf073bd947a0518fe6743b32552d913d"> 136</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* cell = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#afc2f45708d3f78e519e108f197823001"> 137</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* modelAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a0727c80c4fc8719fe848aaaccb20f278"> 138</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* cellAccel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a3b6c165b5a5656f451c3e1495415911b"> 139</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a6fddc4ebaebd6157eb9a7c869a2ac815"> 140</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a"> 141</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html#a248e9557e530788ef6efbb161ca34f0a">chunkId</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html"> 144</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8"> 146</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8">materialIndex</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8"> 147</a></span>&#160; int32_t <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#a42e142111ccadd99eccd755673e84ed8">smoothingGroup</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html"> 150</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">MeshDesc</a></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a13aab51982ee023ece211a00492d3317"> 152</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a>* tr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a62b3efe6edcc0e9709bf87630b327fc2"> 153</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>* bEdges = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ae0d86d4604dafe840dff592dc64df24c"> 154</a></span>&#160; uint32_t edesCount = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#ab5495afac84f3f3ab81fc67915e6bde8"> 155</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* inVertices = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#af324b167e69af8df2eaeb40362e2a361"> 156</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshA = <span class="keyword">nullptr</span>; <span class="comment">// used to gather additional data from source mesh, for example material ID </span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_mesh_desc.html#a9447e8d8b3c43992fe40dee1cbd9be81"> 157</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* meshB = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t.html"> 160</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html"> 164</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html">Stage</a></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">enum</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4af28c3ba8009483e0f4f2de1f28d0d400"> 168</a></span>&#160; FACET_FACET_TEST = 1,</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a1591fbb59b0ef6d1746ea47560ccb580"> 169</a></span>&#160; RETAIN_FROM_FRACTURED_MESH = 2,</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4a289e75c83bc97396f0ed62d78162df1d"> 170</a></span>&#160; RETAIN_FROM_PATTERN = 4,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923"> 172</a></span>&#160; ALL = 0xFFFFFFFF</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; };</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processMesh(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> uint32_t getResultChunkCount() = 0;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* getVertexBuffer() = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexBuffer() = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> uint32_t* getVertexOffset() = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">virtual</span> uint32_t* getIndexOffset() = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* getPerTriangleData() = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> dumpChunksToObj(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be"> 187</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be">PatternFacetType</a> { <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea0d1d9155e8519d41f5bf8e02e94d3d1c">GOOD_FACET</a> = 0, <a class="code" href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9bea7a5a857c21346bed3fbf7d94a0c3d4e7">INFINITE_FACET</a> = 0xffffff };</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html"> 193</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d"> 196</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>(uint32_t i, uint32_t j) : l1(i), l2(j) {};</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d">l1</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b"> 198</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b">l2</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>&amp; lk) <span class="keyword">const</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html#a65503ffa79a13796521512bf1f399dba">operator&lt;</a>(<span class="keyword">const</span> uint32_t in) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html"> 204</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">ChunkGraph</a></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> eraseNode(uint32_t index) = 0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a3712fffabb62d07f594c88e7016d44c1"> 209</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph_link.html">ChunkGraphLink</a>* links = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a89e568da158d43176fd56a41175ec998"> 210</a></span>&#160; uint32_t* dirtyChunks = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a6e7bce099f58dc2e6c85133cc03dea86"> 211</a></span>&#160; uint32_t linksCount = 0;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4a9474b4a38212d5987afa23db264649"> 212</a></span>&#160; uint32_t dirtyChunksCount = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a36754ed70616d387264cb9bd25331fa7"> 213</a></span>&#160; uint32_t newlyAddedCount = 0;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_graph.html#a4966d0c64bd9e8c2a5cde61916fc9947"> 214</a></span>&#160; uint32_t maxLinksCount = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; };</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">Nv::Blast::FractureRT</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a4b33d66b71faced9cea15821ab6d2679">NvBlastExtRTCreateFractureRT</a>(uint32_t threads = 1);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Nv::Blast::Fracturer</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a8dd527c217f5b6577b09e81cf8f881a1">NvBlastExtRTCreateFracturer</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a63cb5e25050cb57dd112232792d51165">NvBlastExtRTDoFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_fracture_desc.html">Nv::Blast::FractureDesc</a>&amp; desc, int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">Nv::Blast::FractureRT::Stage::ALL</a>, int32_t threadId = 0, int32_t threadCount = 1);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">Nv::Blast::MeshGenerator</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a384cc36b855ef7a84ae47bd17f1e45bb">NvBlastExtRTCreateMeshGenerator</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#ac7e2861ee04820dce18c142b2f7baedf">NvBlastExtRTBuildMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_mesh_desc.html">Nv::Blast::MeshDesc</a> dsc, <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* outVertices, uint32_t&amp; vCount, uint32_t* indices, <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">Nv::Blast::PerTriangleAdditionalData</a>* adata, uint32_t maxICount, uint32_t maxVCount);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#ad5ec62cdb5d0f84e129fab31cc62f7d8">NvBlastExtRTGetChunksToUnite</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, <span class="keyword">const</span> uint32_t* voffsets, uint32_t chunksCount, uint32_t* chunksToUnite);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint32_t <a class="code" href="_nv_blast_ext_r_t_8h.html#a1abc5fbcc99dd9c1b84f9fa6bb51609a">NvBlastExtRTDetectIslands</a>(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Nv::Blast::Vertex</a>* vertices, uint32_t* offsets, <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>* bounds, uint32_t chunkCount, <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* graph, uint32_t* islandChunks, uint32_t* islandOffsets);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a>* <a class="code" href="_nv_blast_ext_r_t_8h.html#a70b1eff9af90c4a0872111a1c8e99d0e">NvBlastExtRTCreateChunkGraph</a>(uint32_t maxLinksCount = 4096);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_ext_r_t_8h.html#a4859194da9d8526051290eb24b6f7b67">NvBlastExtRTCookMergedMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTRT_H</span></div><div class="ttc" id="_nv_blast_ext_r_t_8h_html_a384cc36b855ef7a84ae47bd17f1e45bb"><div class="ttname"><a href="_nv_blast_ext_r_t_8h.html#a384cc36b855ef7a84ae47bd17f1e45bb">NvBlastExtRTCreateMeshGenerator</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::MeshGenerator * NvBlastExtRTCreateMeshGenerator()</div></div>
<div class="ttc" id="_nv_blast_ext_r_t_8h_html_a4b33d66b71faced9cea15821ab6d2679"><div class="ttname"><a href="_nv_blast_ext_r_t_8h.html#a4b33d66b71faced9cea15821ab6d2679">NvBlastExtRTCreateFractureRT</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::FractureRT * NvBlastExtRTCreateFractureRT(uint32_t threads=1)</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_graph_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_graph.html">Nv::Blast::ChunkGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:204</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a13e09335669128f9ea506224bfd3d9be"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a13e09335669128f9ea506224bfd3d9be">Nv::Blast::PatternFacetType</a></div><div class="ttdeci">PatternFacetType</div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:187</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_r_t_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_r_t_impl_8h_source.html
index 11f3f26..7713c04 100644
--- a/docs/source_docs/files/_nv_blast_ext_r_t_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_r_t_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_r_t_impl_8h_source.html'
<div class="title">NvBlastExtRTImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_r_t_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGRTIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGRTIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_r_t_8h.html">NvBlastExtRT.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">class </span>BooleanToolV2;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">class </span>TriangulatorV2;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html"> 51</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html">BooleanToolOutputDataImpl</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html">BooleanToolOutputDataImpl</a>(<span class="keywordtype">bool</span> createOnlyEdgeBuffer = <span class="keyword">false</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> reset() <span class="keyword">override</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> resetEdges() <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> copyVerticesAndResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* other) <span class="keyword">override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#acb84a25b874dd8f1694fae0a28f3a105"> 62</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#acb84a25b874dd8f1694fae0a28f3a105">edgesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> *mEdgesCount;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a4d7189b01b41f9355cd53f0bf973e88e"> 66</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a4d7189b01b41f9355cd53f0bf973e88e">verticesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> *mVerticesCount;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa20ff3465dad30f98cc1be2500f16af1"> 70</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa20ff3465dad30f98cc1be2500f16af1">ffResultCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> *mFfResultCount;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; uint32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp;) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; uint32_t addVertex(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp;) <span class="keyword">override</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; uint32_t addFfResult(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp;) <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp; getNewEdge() <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; getNewVertex() <span class="keyword">override</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; getNewFfResult() <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6c8fddbeb5115127e446532d825b04a"> 83</a></span>&#160; std::atomic&lt;uint32_t&gt;* <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6c8fddbeb5115127e446532d825b04a">mEdgesCount</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a1c2c3cf8b0489fa2333e96c6f26097e6"> 84</a></span>&#160; std::atomic&lt;uint32_t&gt;* <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a1c2c3cf8b0489fa2333e96c6f26097e6">mVerticesCount</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6338c21bb51a30b5bb618473985a2cf"> 85</a></span>&#160; std::atomic&lt;uint32_t&gt;* <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6338c21bb51a30b5bb618473985a2cf">mFfResultCount</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a88e36f4da6725d5cac03134c700cab7c"> 87</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a88e36f4da6725d5cac03134c700cab7c">isVerticesAndResultsAllocated</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html"> 90</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html">FractureRTImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html">FractureRTImpl</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processMesh(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a45e8506e070a54df765f5019cfcef7b1"> 99</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a45e8506e070a54df765f5019cfcef7b1">getResultChunkCount</a>()<span class="keyword"> override </span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> resultChunkCount;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; };</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#aed010b948f3bd47ecffc13b3d5b3707c"> 103</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#aed010b948f3bd47ecffc13b3d5b3707c">getVertexBuffer</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> verticesBuffer;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a60cb5572510be8d4530c35905296d374"> 107</a></span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a60cb5572510be8d4530c35905296d374">getVertexOffset</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> vertexOffset;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a6fe51ae951ca037c6ed7c463461928c1"> 111</a></span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a6fe51ae951ca037c6ed7c463461928c1">getIndexBuffer</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> indexBuffer;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#ae5812d97ed4f2f51872d02b0331d56ae"> 115</a></span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#ae5812d97ed4f2f51872d02b0331d56ae">getIndexOffset</a>()<span class="keyword"> override </span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> indexOffset;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a3f6d7c958e74c02d0cb2fbe9092e3e2a"> 119</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a3f6d7c958e74c02d0cb2fbe9092e3e2a">getPerTriangleData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> adata;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">void</span> dumpChunksToObj(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) <span class="keyword">override</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_boolean_tool_v2.html">BooleanToolV2</a>* btool;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_triangulator_v2.html">TriangulatorV2</a>* triangulator;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* verticesBuffer;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; uint32_t* indexBuffer;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* adata;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint32_t triangleCount;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; uint32_t vertexCount;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t* indexOffset;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; uint32_t* vertexOffset;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; uint32_t resultChunkCount;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html">BooleanToolOutputDataImpl</a>* outputData;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">Nv::Blast::BooleanToolOutputData</a>* <a class="code" href="_nv_blast_ext_r_t_impl_8h.html#a1111d62c5a9a9ab81169115c33a3c7ef">CreateBooleanToolOutputData</a>(<span class="keywordtype">bool</span> isMergedMesh = <span class="keyword">false</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#ifdef USE_MERGED_MESH</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keywordtype">void</span> sortResultBuffer(<a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">Nv::Blast::FacetFacetResult</a>*&amp; ffResultBuffer, uint32_t ffCount);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keywordtype">void</span> procesOutputEdges(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">Nv::Blast::BooleanToolOutputData</a>* outputData, <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern, uint32_t facetCount);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGRTIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_r_t_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGRTIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGRTIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_r_t_8h.html">NvBlastExtRT.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">class </span>PxCooking;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">class </span>BooleanToolV2;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">class </span>TriangulatorV2;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html"> 51</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html">BooleanToolOutputDataImpl</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html">BooleanToolOutputDataImpl</a>(<span class="keywordtype">bool</span> createOnlyEdgeBuffer = <span class="keyword">false</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> reset() <span class="keyword">override</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> resetEdges() <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> copyVerticesAndResults(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* other) <span class="keyword">override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#acb84a25b874dd8f1694fae0a28f3a105"> 62</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#acb84a25b874dd8f1694fae0a28f3a105">edgesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> *mEdgesCount;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a4d7189b01b41f9355cd53f0bf973e88e"> 66</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a4d7189b01b41f9355cd53f0bf973e88e">verticesCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> *mVerticesCount;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa20ff3465dad30f98cc1be2500f16af1"> 70</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa20ff3465dad30f98cc1be2500f16af1">ffResultCount</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> *mFfResultCount;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; uint32_t addEdge(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp;) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; uint32_t addVertex(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp;) <span class="keyword">override</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; uint32_t addFfResult(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp;) <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">BooleanResultEdge</a>&amp; getNewEdge() <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>&amp; getNewVertex() <span class="keyword">override</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">FacetFacetResult</a>&amp; getNewFfResult() <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6c8fddbeb5115127e446532d825b04a"> 83</a></span>&#160; std::atomic&lt;uint32_t&gt;* <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6c8fddbeb5115127e446532d825b04a">mEdgesCount</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a1c2c3cf8b0489fa2333e96c6f26097e6"> 84</a></span>&#160; std::atomic&lt;uint32_t&gt;* <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a1c2c3cf8b0489fa2333e96c6f26097e6">mVerticesCount</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6338c21bb51a30b5bb618473985a2cf"> 85</a></span>&#160; std::atomic&lt;uint32_t&gt;* <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6338c21bb51a30b5bb618473985a2cf">mFfResultCount</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a88e36f4da6725d5cac03134c700cab7c"> 87</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#a88e36f4da6725d5cac03134c700cab7c">isVerticesAndResultsAllocated</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html"> 90</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html">FractureRTImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html">FractureRTImpl</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> processMesh(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) <span class="keyword">override</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a45e8506e070a54df765f5019cfcef7b1"> 99</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a45e8506e070a54df765f5019cfcef7b1">getResultChunkCount</a>()<span class="keyword"> override </span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> resultChunkCount;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; };</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#aed010b948f3bd47ecffc13b3d5b3707c"> 103</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#aed010b948f3bd47ecffc13b3d5b3707c">getVertexBuffer</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> verticesBuffer;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a60cb5572510be8d4530c35905296d374"> 107</a></span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a60cb5572510be8d4530c35905296d374">getVertexOffset</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> vertexOffset;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a6fe51ae951ca037c6ed7c463461928c1"> 111</a></span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a6fe51ae951ca037c6ed7c463461928c1">getIndexBuffer</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> indexBuffer;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#ae5812d97ed4f2f51872d02b0331d56ae"> 115</a></span>&#160; <span class="keyword">virtual</span> uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#ae5812d97ed4f2f51872d02b0331d56ae">getIndexOffset</a>()<span class="keyword"> override </span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> indexOffset;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a3f6d7c958e74c02d0cb2fbe9092e3e2a"> 119</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a3f6d7c958e74c02d0cb2fbe9092e3e2a">getPerTriangleData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> adata;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">void</span> dumpChunksToObj(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) <span class="keyword">override</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_boolean_tool_v2.html">BooleanToolV2</a>* btool;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_triangulator_v2.html">TriangulatorV2</a>* triangulator;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* verticesBuffer;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; uint32_t* indexBuffer;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* adata;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint32_t triangleCount;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; uint32_t vertexCount;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; uint32_t* indexOffset;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; uint32_t* vertexOffset;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; uint32_t resultChunkCount;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html">BooleanToolOutputDataImpl</a>* outputData;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">Nv::Blast::BooleanToolOutputData</a>* <a class="code" href="_nv_blast_ext_r_t_impl_8h.html#a1111d62c5a9a9ab81169115c33a3c7ef">CreateBooleanToolOutputData</a>(<span class="keywordtype">bool</span> isMergedMesh = <span class="keyword">false</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#ifdef USE_MERGED_MESH</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keywordtype">void</span> sortResultBuffer(<a class="code" href="struct_nv_1_1_blast_1_1_facet_facet_result.html">Nv::Blast::FacetFacetResult</a>*&amp; ffResultBuffer, uint32_t ffCount);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keywordtype">void</span> procesOutputEdges(<a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">Nv::Blast::BooleanToolOutputData</a>* outputData, <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">Nv::Blast::DamagePattern</a>* pattern, uint32_t facetCount);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGRTIMPL_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_r_t_impl_html_a45e8506e070a54df765f5019cfcef7b1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_r_t_impl.html#a45e8506e070a54df765f5019cfcef7b1">Nv::Blast::FractureRTImpl::getResultChunkCount</a></div><div class="ttdeci">virtual uint32_t getResultChunkCount() override</div><div class="ttdef"><b>Definition:</b> NvBlastExtRTImpl.h:99</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_boolean_result_edge_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_boolean_result_edge.html">Nv::Blast::BooleanResultEdge</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:68</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl_html_aa6338c21bb51a30b5bb618473985a2cf"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_boolean_tool_output_data_impl.html#aa6338c21bb51a30b5bb618473985a2cf">Nv::Blast::BooleanToolOutputDataImpl::mFfResultCount</a></div><div class="ttdeci">std::atomic&lt; uint32_t &gt; * mFfResultCount</div><div class="ttdef"><b>Definition:</b> NvBlastExtRTImpl.h:85</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_r_t_multithreaded_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_r_t_multithreaded_impl_8h_source.html
index 931a75c..4b67341 100644
--- a/docs/source_docs/files/_nv_blast_ext_r_t_multithreaded_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_r_t_multithreaded_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_r_t_multithreaded_impl_8
<div class="title">NvBlastExtRTMultithreadedImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_r_t_multithreaded_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_r_t_8h.html">NvBlastExtRT.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_r_t_impl_8h.html">NvBlastExtRTImpl.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html"> 44</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html">FractureRTMultithreadedImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a2cdd433872dc7f53e167a0b56a779dc5">FractureRTMultithreadedImpl</a>(uint32_t threadCount);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a2e605b1ceb89369f773c36b5b89e0675">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#abbd12e3d1ca30906591479992a712c18">processMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) <span class="keyword">override</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#ab9b2c90c300b317826e5699c6218daf0">getResultChunkCount</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a988be65ec224a8472c142f5984657c1d">getVertexBuffer</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#aed476333ba9adde4f4071edb2178b5dd">getIndexBuffer</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#af4a57e5a39aafa8ce93a96739983656d">getVertexOffset</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a1d5daee5300cbbd3b317eb276cb55a09">getIndexOffset</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a4dc9f529360c066dc0aaf2ddd9ddb405">getPerTriangleData</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a9109623841d82f8417182afb69f37f54">dumpChunksToObj</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) <span class="keyword">override</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint32_t* indexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; uint32_t* vertexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint32_t* indexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* adata = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; uint32_t chunkCount;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#ifdef USE_MERGED_MESH</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">struct </span>PerThreadToolsAndData</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; PerThreadToolsAndData();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ~PerThreadToolsAndData();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a>* f = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a>* mgen = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; uint32_t* indexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint32_t* indexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; uint32_t* vertexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uint32_t* perChunkIds = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint32_t chunkCount;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* adata = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* accel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">struct </span>FractureJob</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; FractureJob() {};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; FractureJob(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* cell,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">FractureRT::Stage::ALL</a>, <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; : chunkId(chunkId), mesh(mesh), cell(cell), stage(stage), pattern(pattern) {}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint32_t chunkId;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* cell;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">FractureRT::Stage::ALL</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::mutex work_mtx;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::condition_variable hasAJob;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; std::vector&lt;FractureJob&gt; fractureJobList;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; std::vector&lt;PerThreadToolsAndData&gt; perThreadTd;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; std::vector&lt;std::thread&gt; threadPool;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; std::atomic&lt;int32_t&gt; jobCounter;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> waitForJob(int32_t threadId);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">bool</span> terminateThreads;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> pushJob(FractureJob&amp; j);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; };</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl_html_a4dc9f529360c066dc0aaf2ddd9ddb405"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a4dc9f529360c066dc0aaf2ddd9ddb405">Nv::Blast::FractureRTMultithreadedImpl::getPerTriangleData</a></div><div class="ttdeci">PerTriangleAdditionalData * getPerTriangleData() override</div></div>
+<a href="_nv_blast_ext_r_t_multithreaded_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_r_t_8h.html">NvBlastExtRT.h</a>&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_nv_blast_ext_r_t_impl_8h.html">NvBlastExtRTImpl.h</a>&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html"> 44</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html">FractureRTMultithreadedImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t.html">FractureRT</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a2cdd433872dc7f53e167a0b56a779dc5">FractureRTMultithreadedImpl</a>(uint32_t threadCount);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a2e605b1ceb89369f773c36b5b89e0675">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#abbd12e3d1ca30906591479992a712c18">processMesh</a>(<a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* msh) <span class="keyword">override</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#ab9b2c90c300b317826e5699c6218daf0">getResultChunkCount</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a988be65ec224a8472c142f5984657c1d">getVertexBuffer</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#aed476333ba9adde4f4071edb2178b5dd">getIndexBuffer</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#af4a57e5a39aafa8ce93a96739983656d">getVertexOffset</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; uint32_t* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a1d5daee5300cbbd3b317eb276cb55a09">getIndexOffset</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a4dc9f529360c066dc0aaf2ddd9ddb405">getPerTriangleData</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a9109623841d82f8417182afb69f37f54">dumpChunksToObj</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* path) <span class="keyword">override</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint32_t* indexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; uint32_t* vertexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint32_t* indexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* adata = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; uint32_t chunkCount;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#ifdef USE_MERGED_MESH</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">struct </span>PerThreadToolsAndData</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; PerThreadToolsAndData();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ~PerThreadToolsAndData();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fracturer.html">Fracturer</a>* f = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh_generator.html">MeshGenerator</a>* mgen = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>* vertexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; uint32_t* indexBuffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint32_t* indexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; uint32_t* vertexOffsets = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uint32_t* perChunkIds = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint32_t chunkCount;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">PerTriangleAdditionalData</a>* adata = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* accel = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_boolean_tool_output_data.html">BooleanToolOutputData</a>* outputData = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">struct </span>FractureJob</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; FractureJob() {};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; FractureJob(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* cell,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">FractureRT::Stage::ALL</a>, <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; : chunkId(chunkId), mesh(mesh), cell(cell), stage(stage), pattern(pattern) {}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint32_t chunkId;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* mesh;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Nv::Blast::Mesh</a>* cell;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; int32_t stage = <a class="code" href="struct_nv_1_1_blast_1_1_fracture_r_t_1_1_stage.html#ad0734403d39e52d55ed4492d63090ed4aebba34ef519a4778be00d6f7408a2923">FractureRT::Stage::ALL</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_damage_pattern.html">DamagePattern</a>* pattern = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::mutex work_mtx;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::condition_variable hasAJob;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; std::vector&lt;FractureJob&gt; fractureJobList;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; std::vector&lt;PerThreadToolsAndData&gt; perThreadTd;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; std::vector&lt;std::thread&gt; threadPool;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; std::atomic&lt;int32_t&gt; jobCounter;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> waitForJob(int32_t threadId);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">bool</span> terminateThreads;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> pushJob(FractureJob&amp; j);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; };</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl_html_a4dc9f529360c066dc0aaf2ddd9ddb405"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a4dc9f529360c066dc0aaf2ddd9ddb405">Nv::Blast::FractureRTMultithreadedImpl::getPerTriangleData</a></div><div class="ttdeci">PerTriangleAdditionalData * getPerTriangleData() override</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_per_triangle_additional_data_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_per_triangle_additional_data.html">Nv::Blast::PerTriangleAdditionalData</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtRT.h:144</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl_html_a1d5daee5300cbbd3b317eb276cb55a09"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_r_t_multithreaded_impl.html#a1d5daee5300cbbd3b317eb276cb55a09">Nv::Blast::FractureRTMultithreadedImpl::getIndexOffset</a></div><div class="ttdeci">uint32_t * getIndexOffset() override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_spatial_accelerator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_spatial_accelerator.html">Nv::Blast::SpatialAccelerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:47</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_serialization_8h_source.html b/docs/source_docs/files/_nv_blast_ext_serialization_8h_source.html
index 335eab4..4472116 100755
--- a/docs/source_docs/files/_nv_blast_ext_serialization_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_serialization_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_serialization_8h_source.
<div class="title">NvBlastExtSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">ExtSerialization</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html"> 46</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html">EncodingID</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7"> 48</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7">Enum</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec"> 50</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec">CapnProtoBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;N&#39;</span>, <span class="charliteral">&#39;B&#39;</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd">RawBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;W&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html"> 56</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* requestBuffer(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a9d922a89c41ba9b1997d7e60d6d7b35b">setSerializationEncoding</a>(uint32_t encodingID) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5e4409ef51f083ccaf2993e0b77dc951">getSerializationEncoding</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5790c794d5c395736c223d8ab6f036ca">setBufferProvider</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a>* bufferProvider) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">peekHeader</a>(uint32_t* objectTypeID, uint32_t* encodingID, uint64_t* dataSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize) = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a52f3f5008a0047ee072fb5e1155c28e5">skipObject</a>(uint64_t&amp; bufferSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer) = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a6fb7f346cbe938ccb155be5a8b8c9efe">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize, uint32_t* objectTypeIDPtr = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#adfb92a5ecbd708138d0b9f67a323be79">serializeIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keywordtype">object</span>, uint32_t objectTypeID) = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a08937f68c380fe0bcb0cba17ea4b539e">release</a>() = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1"> 140</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1">~ExtSerialization</a>() {}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>* <a class="code" href="_nv_blast_ext_serialization_8h.html#a4ecdf52f4822b77649c832a42733b6f9">NvBlastExtSerializationCreate</a>();</div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html_a031a3f5df089e26d4e97f76f35c1bc9f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">Nv::Blast::ExtSerialization::peekHeader</a></div><div class="ttdeci">virtual bool peekHeader(uint32_t *objectTypeID, uint32_t *encodingID, uint64_t *dataSize, const void *buffer, uint64_t bufferSize)=0</div></div>
+<a href="_nv_blast_ext_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">ExtSerialization</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html"> 46</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html">EncodingID</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7"> 48</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7">Enum</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec"> 50</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a47c1a4c8d16a208ed5ed4fffd78a5bec">CapnProtoBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;N&#39;</span>, <span class="charliteral">&#39;B&#39;</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_serialization_1_1_encoding_i_d.html#ab03c7560bbcf698c0806673b273c31d7a2bdda431eab0248c8fa91395a94b20fd">RawBinary</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;W&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html"> 56</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* requestBuffer(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a9d922a89c41ba9b1997d7e60d6d7b35b">setSerializationEncoding</a>(uint32_t encodingID) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5e4409ef51f083ccaf2993e0b77dc951">getSerializationEncoding</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a5790c794d5c395736c223d8ab6f036ca">setBufferProvider</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">BufferProvider</a>* bufferProvider) = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">peekHeader</a>(uint32_t* objectTypeID, uint32_t* encodingID, uint64_t* dataSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize) = 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a52f3f5008a0047ee072fb5e1155c28e5">skipObject</a>(uint64_t&amp; bufferSize, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer) = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a6fb7f346cbe938ccb155be5a8b8c9efe">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t bufferSize, uint32_t* objectTypeIDPtr = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#adfb92a5ecbd708138d0b9f67a323be79">serializeIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keywordtype">object</span>, uint32_t objectTypeID) = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#a08937f68c380fe0bcb0cba17ea4b539e">release</a>() = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1"> 140</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html#ad8a918eb53660a15238793c99a686cb1">~ExtSerialization</a>() {}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>* <a class="code" href="_nv_blast_ext_serialization_8h.html#a4ecdf52f4822b77649c832a42733b6f9">NvBlastExtSerializationCreate</a>();</div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html_a031a3f5df089e26d4e97f76f35c1bc9f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html#a031a3f5df089e26d4e97f76f35c1bc9f">Nv::Blast::ExtSerialization::peekHeader</a></div><div class="ttdeci">virtual bool peekHeader(uint32_t *objectTypeID, uint32_t *encodingID, uint64_t *dataSize, const void *buffer, uint64_t bufferSize)=0</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_html_a52f3f5008a0047ee072fb5e1155c28e5"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization.html#a52f3f5008a0047ee072fb5e1155c28e5">Nv::Blast::ExtSerialization::skipObject</a></div><div class="ttdeci">virtual const void * skipObject(uint64_t &amp;bufferSize, const void *buffer)=0</div></div>
<div class="ttc" id="_nv_blast_ext_serialization_8h_html_a4ecdf52f4822b77649c832a42733b6f9"><div class="ttname"><a href="_nv_blast_ext_serialization_8h.html#a4ecdf52f4822b77649c832a42733b6f9">NvBlastExtSerializationCreate</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::ExtSerialization * NvBlastExtSerializationCreate()</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_serialization_c_a_p_n_8h_source.html b/docs/source_docs/files/_nv_blast_ext_serialization_c_a_p_n_8h_source.html
index a3fd428..a8722f5 100755
--- a/docs/source_docs/files/_nv_blast_ext_serialization_c_a_p_n_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_serialization_c_a_p_n_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_serialization_c_a_p_n_8h
<div class="title">NvBlastExtSerializationCAPN.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_serialization_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;capnp/serialize.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_input_stream_8h.html">NvBlastExtInputStream.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_output_stream_8h.html">NvBlastExtOutputStream.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_8h.html">NvBlastExtSerialization.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html">ExtSerializationCAPN</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ab383fa5b9b19962a734bcf6211d392ea">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* input, uint64_t size);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">static</span> TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a960853d269e0bc68abb65d32c8576101">deserializeFromStream</a>(std::istream&amp; inputStream);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a02651eaeb52d4545ef1ebbf38ba558ef">serializationBufferSize</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">serializeIntoBuffer</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buffer, uint64_t maxSize, uint64_t&amp; usedSize);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">serializeIntoBuffer</a>(<span class="keyword">const</span> TObject *<span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*&amp; buffer, uint64_t&amp; size, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">ExtSerialization::BufferProvider</a>* bufferProvider = <span class="keyword">nullptr</span>, uint64_t offset = 0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ae902fce0198bc332ca59d3c7ccf00690">serializeIntoStream</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, std::ostream&amp; outputStream);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Specialized</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> serializeIntoBuilder(TSerializationBuilder&amp; objectBuilder, <span class="keyword">const</span> TObject* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> TObject* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">static</span> TObject* deserializeFromStreamReader(capnp::InputStreamMessageReader&amp; message);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ab383fa5b9b19962a734bcf6211d392ea"> 65</a></span>&#160;TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ab383fa5b9b19962a734bcf6211d392ea">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* input, uint64_t size)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; kj::ArrayPtr&lt;const unsigned char&gt; source(input, size);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; kj::ArrayInputStream inputStream(source);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Nv::Blast::Array&lt;uint64_t&gt;::type</a> scratch(static_cast&lt;uint32_t&gt;(size));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; kj::ArrayPtr&lt;capnp::word&gt; scratchArray((capnp::word*) scratch.begin(), size);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; capnp::InputStreamMessageReader message(inputStream, capnp::ReaderOptions(), scratchArray);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> deserializeFromStreamReader(message);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a960853d269e0bc68abb65d32c8576101"> 81</a></span>&#160;TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a960853d269e0bc68abb65d32c8576101">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::deserializeFromStream</a>(std::istream&amp; inputStream)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html">ExtInputStream</a> readStream(inputStream);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; capnp::InputStreamMessageReader message(readStream);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> deserializeFromStreamReader(message);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a02651eaeb52d4545ef1ebbf38ba558ef"> 92</a></span>&#160;uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a02651eaeb52d4545ef1ebbf38ba558ef">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializationBufferSize</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> computeSerializedSizeInWords(message) * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb"> 108</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializeIntoBuffer</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buffer, uint64_t maxSize, uint64_t&amp; usedSize)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; usedSize = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint64_t messageSize = computeSerializedSizeInWords(message) * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (maxSize &lt; messageSize)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(<span class="stringliteral">&quot;When attempting to serialize into an existing buffer, the provided buffer was too small.&quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; usedSize = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; kj::ArrayPtr&lt;unsigned char&gt; outputBuffer(buffer, maxSize);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; kj::ArrayOutputStream outputStream(outputBuffer);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; capnp::writeMessage(outputStream, message);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; usedSize = messageSize;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#aa2ba879511a291f76d7fd34d9a645f8a"> 140</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializeIntoBuffer</a>(<span class="keyword">const</span> TObject *<span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*&amp; buffer, uint64_t&amp; size, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">ExtSerialization::BufferProvider</a>* bufferProvider, uint64_t offset)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; buffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; size = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">const</span> uint64_t blockSize = computeSerializedSizeInWords(message) * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; size = blockSize + offset;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; buffer = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(bufferProvider != <span class="keyword">nullptr</span> ? bufferProvider-&gt;<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html#a04dd346c002b043527e8ef4bd73853f6">requestBuffer</a>(size) : <a class="code" href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741">NVBLAST_ALLOC</a>(size));</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; kj::ArrayPtr&lt;unsigned char&gt; outputBuffer(buffer + offset, blockSize);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; kj::ArrayOutputStream outputStream(outputBuffer);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; capnp::writeMessage(outputStream, message);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ae902fce0198bc332ca59d3c7ccf00690"> 169</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ae902fce0198bc332ca59d3c7ccf00690">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializeIntoStream</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, std::ostream&amp; outputStream)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html">ExtOutputStream</a> blastOutputStream(outputStream);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; writeMessage(blastOutputStream, message);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
+<a href="_nv_blast_ext_serialization_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;capnp/serialize.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_input_stream_8h.html">NvBlastExtInputStream.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_output_stream_8h.html">NvBlastExtOutputStream.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_8h.html">NvBlastExtSerialization.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html">ExtSerializationCAPN</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ab383fa5b9b19962a734bcf6211d392ea">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* input, uint64_t size);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">static</span> TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a960853d269e0bc68abb65d32c8576101">deserializeFromStream</a>(std::istream&amp; inputStream);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a02651eaeb52d4545ef1ebbf38ba558ef">serializationBufferSize</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">serializeIntoBuffer</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buffer, uint64_t maxSize, uint64_t&amp; usedSize);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">serializeIntoBuffer</a>(<span class="keyword">const</span> TObject *<span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*&amp; buffer, uint64_t&amp; size, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">ExtSerialization::BufferProvider</a>* bufferProvider = <span class="keyword">nullptr</span>, uint64_t offset = 0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ae902fce0198bc332ca59d3c7ccf00690">serializeIntoStream</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, std::ostream&amp; outputStream);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Specialized</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> serializeIntoBuilder(TSerializationBuilder&amp; objectBuilder, <span class="keyword">const</span> TObject* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> TObject* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">static</span> TObject* deserializeFromStreamReader(capnp::InputStreamMessageReader&amp; message);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ab383fa5b9b19962a734bcf6211d392ea"> 65</a></span>&#160;TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ab383fa5b9b19962a734bcf6211d392ea">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* input, uint64_t size)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; kj::ArrayPtr&lt;const unsigned char&gt; source(input, size);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; kj::ArrayInputStream inputStream(source);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Nv::Blast::Array&lt;uint64_t&gt;::type</a> scratch(static_cast&lt;uint32_t&gt;(size));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; kj::ArrayPtr&lt;capnp::word&gt; scratchArray((capnp::word*) scratch.begin(), size);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; capnp::InputStreamMessageReader message(inputStream, capnp::ReaderOptions(), scratchArray);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> deserializeFromStreamReader(message);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a960853d269e0bc68abb65d32c8576101"> 81</a></span>&#160;TObject* <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a960853d269e0bc68abb65d32c8576101">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::deserializeFromStream</a>(std::istream&amp; inputStream)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_input_stream.html">ExtInputStream</a> readStream(inputStream);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; capnp::InputStreamMessageReader message(readStream);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> deserializeFromStreamReader(message);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a02651eaeb52d4545ef1ebbf38ba558ef"> 92</a></span>&#160;uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a02651eaeb52d4545ef1ebbf38ba558ef">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializationBufferSize</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> computeSerializedSizeInWords(message) * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb"> 108</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializeIntoBuffer</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buffer, uint64_t maxSize, uint64_t&amp; usedSize)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; usedSize = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint64_t messageSize = computeSerializedSizeInWords(message) * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (maxSize &lt; messageSize)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(<span class="stringliteral">&quot;When attempting to serialize into an existing buffer, the provided buffer was too small.&quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; usedSize = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; kj::ArrayPtr&lt;unsigned char&gt; outputBuffer(buffer, maxSize);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; kj::ArrayOutputStream outputStream(outputBuffer);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; capnp::writeMessage(outputStream, message);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; usedSize = messageSize;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#aa2ba879511a291f76d7fd34d9a645f8a"> 140</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#a878e72fb50af585c0c43a58b2c27a3eb">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializeIntoBuffer</a>(<span class="keyword">const</span> TObject *<span class="keywordtype">object</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*&amp; buffer, uint64_t&amp; size, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">ExtSerialization::BufferProvider</a>* bufferProvider, uint64_t offset)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; buffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; size = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">const</span> uint64_t blockSize = computeSerializedSizeInWords(message) * <span class="keyword">sizeof</span>(uint64_t);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; size = blockSize + offset;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; buffer = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(bufferProvider != <span class="keyword">nullptr</span> ? bufferProvider-&gt;<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html#a04dd346c002b043527e8ef4bd73853f6">requestBuffer</a>(size) : <a class="code" href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741">NVBLAST_ALLOC</a>(size));</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; kj::ArrayPtr&lt;unsigned char&gt; outputBuffer(buffer + offset, blockSize);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; kj::ArrayOutputStream outputStream(outputBuffer);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; capnp::writeMessage(outputStream, message);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> TObject, <span class="keyword">typename</span> TSerializationReader, <span class="keyword">typename</span> TSerializationBuilder&gt;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ae902fce0198bc332ca59d3c7ccf00690"> 169</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html#ae902fce0198bc332ca59d3c7ccf00690">ExtSerializationCAPN&lt;TObject, TSerializationReader, TSerializationBuilder&gt;::serializeIntoStream</a>(<span class="keyword">const</span> TObject* <span class="keywordtype">object</span>, std::ostream&amp; outputStream)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; capnp::MallocMessageBuilder message;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">bool</span> result = serializeIntoMessage(message, <span class="keywordtype">object</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (result == <span class="keyword">false</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_output_stream.html">ExtOutputStream</a> blastOutputStream(outputStream);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; writeMessage(blastOutputStream, message);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="_nv_blast_globals_8h_html_a5d66f893822bf7f14f90e2b5480c6741"><div class="ttname"><a href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741">NVBLAST_ALLOC</a></div><div class="ttdeci">#define NVBLAST_ALLOC(_size)</div><div class="ttdef"><b>Definition:</b> NvBlastGlobals.h:220</div></div>
<div class="ttc" id="_nv_blast_ext_input_stream_8h_html"><div class="ttname"><a href="_nv_blast_ext_input_stream_8h.html">NvBlastExtInputStream.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serialization_c_a_p_n.html">Nv::Blast::ExtSerializationCAPN</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtSerializationCAPN.h:44</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_serialization_internal_8h_source.html b/docs/source_docs/files/_nv_blast_ext_serialization_internal_8h_source.html
index a0b9300..947d4a3 100755
--- a/docs/source_docs/files/_nv_blast_ext_serialization_internal_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_serialization_internal_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_serialization_internal_8
<div class="title">NvBlastExtSerializationInternal.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_serialization_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_8h.html">NvBlastExtSerialization.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_nv_blast_ext_serialization_internal_8h.html#adc8de70aee50af45adfbbc23449b3feb"> 35</a></span>&#160;<span class="preprocessor">#define ExtSerializerBoilerplate(_name, _description, _objectTypeID, _encodingID) \</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">virtual const char* getName() const override { return _name; } \</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">virtual const char* getDescription() const override { return _description; } \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">virtual uint32_t getObjectTypeID() const override { return _objectTypeID; } \</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">virtual uint32_t getEncodingID() const override { return _encodingID; }</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_ext_serialization_internal_8h.html#a4392703db37983d47a65786528f90c96"> 42</a></span>&#160;<span class="preprocessor">#define ExtSerializerReadOnly(_name) \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">virtual bool isReadOnly() const override { return true; } \</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">virtual uint64_t serializeIntoBuffer \</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">( \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> void*&amp; buffer, \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> ExtSerialization::BufferProvider&amp; bufferProvider, \</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> const void* object, \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> uint64_t offset = 0 \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">) override \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> NVBLAST_LOG_WARNING(#_name &quot;::serializeIntoBuffer: ExtPxAsset_RAW serializer is read-only.&quot;); \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> NV_UNUSED(buffer); \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> NV_UNUSED(bufferProvider); \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> NV_UNUSED(object); \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> NV_UNUSED(offset); \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> return 0; \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">}</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_nv_blast_ext_serialization_internal_8h.html#a222a4e46d410e4447825a9592b47fb23"> 61</a></span>&#160;<span class="preprocessor">#define ExtSerializerDefaultFactoryAndRelease(_classname) \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">static ExtSerializer* create() \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> return NVBLAST_NEW(_classname) (); \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">virtual void release() override \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> NVBLAST_DELETE(this, _classname); \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">}</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serializer.html"> 80</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serializer.html#a82908fca5fbf84b6bbdb144ab06a8241"> 83</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a82908fca5fbf84b6bbdb144ab06a8241">~ExtSerializer</a>() {}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a46e5b32fc3d3aec3beb78285eb3fe734">getName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a4ffabc353fdc72192093b8b634cdb5b6">getDescription</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a47f64b89deb676cb05a2607d51bf7f9f">getObjectTypeID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a5096c2be50399ce4a44d98333674b623">getEncodingID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serializer.html#a73ddf0519ab4acca3fc40493cd57af0f"> 110</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a73ddf0519ab4acca3fc40493cd57af0f">isReadOnly</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a6486a199fa85801699312ccb279c4b00">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t size) = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#af2c3f780af61ae8485b2fba335a7518e">serializeIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">ExtSerialization::BufferProvider</a>&amp; bufferProvider, <span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keywordtype">object</span>, uint64_t offset = 0) = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#abf6b74d1cc293d8fca2afe8b15914fc3">release</a>() = 0;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html"> 142</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html">ExtSerializationInternal</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">ExtSerialization</a></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> registerSerializer(<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a>&amp; serializer) = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> unregisterSerializer(<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a>&amp; serializer) = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a>* findSerializer(uint32_t objectTypeID, uint32_t encodingID) = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html#ae8afe25ad90d0cf40de4b93df15650c6a20be8300afa2585ed7c7b3741e8ef29b"> 163</a></span>&#160; <span class="keyword">enum</span> { HeaderSize = 128 };</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;};</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Factory, <span class="keywordtype">size_t</span> N&gt;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab0f37d6bc84a5e54de6435b98b5c8676"> 168</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="namespace_nv_1_1_blast.html#ab0f37d6bc84a5e54de6435b98b5c8676">ExtSerializationLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html">Nv::Blast::ExtSerializationInternal</a>&amp; serialization, Factory(&amp;factories)[N])</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">size_t</span> count = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> f : factories)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">Nv::Blast::ExtSerializer</a>* serializer = f();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (serializer != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (serialization.<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html#ae77a17f2fb10bba891b51455fe55056c">registerSerializer</a>(*serializer))</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; ++count;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(<span class="stringliteral">&quot;Nv::Blast::ExtSerializationLoadSet: failed to register serailizer:&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(serializer-&gt;<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a46e5b32fc3d3aec3beb78285eb3fe734">getName</a>());</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; serializer-&gt;<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#abf6b74d1cc293d8fca2afe8b15914fc3">release</a>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(<span class="stringliteral">&quot;Nv::Blast::ExtSerializationLoadSet: failed to create serailizer.&quot;</span>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> count;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html"> 198</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93"> 201</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93">Flags</a></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93a43f604265f7e73d375f7d21ec9892b90"> 203</a></span>&#160; LittleEndian = (1 &lt;&lt; 0),</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93abcd4ccd47535afcf94da29bd746ff4ac"> 204</a></span>&#160; Fail = (1 &lt;&lt; 1)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a16eb4b1c0361d1e3542f37cf374e5df6"> 207</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a16eb4b1c0361d1e3542f37cf374e5df6">ExtIStream</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size) : m_buf(reinterpret_cast&lt;const char*&gt;(buffer)), m_flags(0)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_cur = m_buf;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_end = m_buf + size;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> uint16_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a> = LittleEndian;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_flags = *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(&amp;<a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a514afd84de123d8d691d2a0178c9c277"> 215</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a514afd84de123d8d691d2a0178c9c277">advance</a>(ptrdiff_t diff)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_cur += diff;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (m_cur &lt; m_buf)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_cur = m_buf;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_flags |= Fail;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (m_cur &gt; m_end)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_cur = m_end;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_flags |= Fail;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a4119863e75f6cdfced6ecec12180d78e"> 234</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a4119863e75f6cdfced6ecec12180d78e">view</a>()</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> m_cur;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a81f34ca062db4599ac19fb7c7a4c41e9"> 239</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a81f34ca062db4599ac19fb7c7a4c41e9">read</a>(<span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (!canRead(size)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; std::memcpy(buffer, m_cur, size);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_cur += size;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a452499fea794c56c3a9bc0bdad841571"> 247</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a452499fea794c56c3a9bc0bdad841571">tellg</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cur - m_buf; }</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#ad05d35fdbe59379f3d440adc9cae9aba"> 248</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#ad05d35fdbe59379f3d440adc9cae9aba">left</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_end - m_cur; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af2373b58b93672214c17a8b72c7b9542"> 250</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af2373b58b93672214c17a8b72c7b9542">eof</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cur &gt;= m_end; }</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af71042d83eb7b5ea27da3b0a199935a9"> 251</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af71042d83eb7b5ea27da3b0a199935a9">fail</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (m_flags &amp; Fail) != 0; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_buf;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_cur;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_end;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint32_t m_flags;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">bool</span> isLittleEndian()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (m_flags &amp; LittleEndian) != 0; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">bool</span> canRead(<span class="keywordtype">size_t</span> size)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cur + size &lt;= m_end; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">friend</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#ad9129b4165c36b7d359886cb429ec3de">operator &gt;&gt; </a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; s, T&amp; <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;};</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad9129b4165c36b7d359886cb429ec3de"> 268</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#ad9129b4165c36b7d359886cb429ec3de">operator &gt;&gt; </a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; s, T&amp; <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (s.canRead(<span class="keyword">sizeof</span>(T)))</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (s.isLittleEndian())</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; x = *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(s.m_cur);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; s.m_cur += <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">char</span>* b = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(&amp;<a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) + <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> n = <span class="keyword">sizeof</span>(T); n--;) *--b = *s.m_cur++;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; s.m_flags |= <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93abcd4ccd47535afcf94da29bd746ff4ac">ExtIStream::Fail</a>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> s;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_i_stream_html_af71042d83eb7b5ea27da3b0a199935a9"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_i_stream.html#af71042d83eb7b5ea27da3b0a199935a9">Nv::Blast::ExtIStream::fail</a></div><div class="ttdeci">bool fail() const</div><div class="ttdef"><b>Definition:</b> NvBlastExtSerializationInternal.h:251</div></div>
+<a href="_nv_blast_ext_serialization_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_8h.html">NvBlastExtSerialization.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_nv_blast_ext_serialization_internal_8h.html#adc8de70aee50af45adfbbc23449b3feb"> 35</a></span>&#160;<span class="preprocessor">#define ExtSerializerBoilerplate(_name, _description, _objectTypeID, _encodingID) \</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">virtual const char* getName() const override { return _name; } \</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">virtual const char* getDescription() const override { return _description; } \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">virtual uint32_t getObjectTypeID() const override { return _objectTypeID; } \</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">virtual uint32_t getEncodingID() const override { return _encodingID; }</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_ext_serialization_internal_8h.html#a4392703db37983d47a65786528f90c96"> 42</a></span>&#160;<span class="preprocessor">#define ExtSerializerReadOnly(_name) \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">virtual bool isReadOnly() const override { return true; } \</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">virtual uint64_t serializeIntoBuffer \</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">( \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> void*&amp; buffer, \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> ExtSerialization::BufferProvider&amp; bufferProvider, \</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> const void* object, \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> uint64_t offset = 0 \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">) override \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> NVBLAST_LOG_WARNING(#_name &quot;::serializeIntoBuffer: ExtPxAsset_RAW serializer is read-only.&quot;); \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> NV_UNUSED(buffer); \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> NV_UNUSED(bufferProvider); \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> NV_UNUSED(object); \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> NV_UNUSED(offset); \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> return 0; \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">}</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_nv_blast_ext_serialization_internal_8h.html#a222a4e46d410e4447825a9592b47fb23"> 61</a></span>&#160;<span class="preprocessor">#define ExtSerializerDefaultFactoryAndRelease(_classname) \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">static ExtSerializer* create() \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> return NVBLAST_NEW(_classname) (); \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">virtual void release() override \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> NVBLAST_DELETE(this, _classname); \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">}</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serializer.html"> 80</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serializer.html#a82908fca5fbf84b6bbdb144ab06a8241"> 83</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a82908fca5fbf84b6bbdb144ab06a8241">~ExtSerializer</a>() {}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a46e5b32fc3d3aec3beb78285eb3fe734">getName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a4ffabc353fdc72192093b8b634cdb5b6">getDescription</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a47f64b89deb676cb05a2607d51bf7f9f">getObjectTypeID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a5096c2be50399ce4a44d98333674b623">getEncodingID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serializer.html#a73ddf0519ab4acca3fc40493cd57af0f"> 110</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a73ddf0519ab4acca3fc40493cd57af0f">isReadOnly</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a6486a199fa85801699312ccb279c4b00">deserializeFromBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, uint64_t size) = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#af2c3f780af61ae8485b2fba335a7518e">serializeIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_1_1_buffer_provider.html">ExtSerialization::BufferProvider</a>&amp; bufferProvider, <span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keywordtype">object</span>, uint64_t offset = 0) = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#abf6b74d1cc293d8fca2afe8b15914fc3">release</a>() = 0;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html"> 142</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html">ExtSerializationInternal</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">ExtSerialization</a></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> registerSerializer(<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a>&amp; serializer) = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> unregisterSerializer(<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a>&amp; serializer) = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">ExtSerializer</a>* findSerializer(uint32_t objectTypeID, uint32_t encodingID) = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html#ae8afe25ad90d0cf40de4b93df15650c6a20be8300afa2585ed7c7b3741e8ef29b"> 163</a></span>&#160; <span class="keyword">enum</span> { HeaderSize = 128 };</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;};</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Factory, <span class="keywordtype">size_t</span> N&gt;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab0f37d6bc84a5e54de6435b98b5c8676"> 168</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="namespace_nv_1_1_blast.html#ab0f37d6bc84a5e54de6435b98b5c8676">ExtSerializationLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html">Nv::Blast::ExtSerializationInternal</a>&amp; serialization, Factory(&amp;factories)[N])</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">size_t</span> count = 0;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> f : factories)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html">Nv::Blast::ExtSerializer</a>* serializer = f();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (serializer != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (serialization.<a class="code" href="class_nv_1_1_blast_1_1_ext_serialization_internal.html#ae77a17f2fb10bba891b51455fe55056c">registerSerializer</a>(*serializer))</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; ++count;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(<span class="stringliteral">&quot;Nv::Blast::ExtSerializationLoadSet: failed to register serailizer:&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(serializer-&gt;<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#a46e5b32fc3d3aec3beb78285eb3fe734">getName</a>());</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; serializer-&gt;<a class="code" href="class_nv_1_1_blast_1_1_ext_serializer.html#abf6b74d1cc293d8fca2afe8b15914fc3">release</a>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0">NVBLAST_LOG_ERROR</a>(<span class="stringliteral">&quot;Nv::Blast::ExtSerializationLoadSet: failed to create serailizer.&quot;</span>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> count;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html"> 198</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93"> 201</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93">Flags</a></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93a43f604265f7e73d375f7d21ec9892b90"> 203</a></span>&#160; LittleEndian = (1 &lt;&lt; 0),</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93abcd4ccd47535afcf94da29bd746ff4ac"> 204</a></span>&#160; Fail = (1 &lt;&lt; 1)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a16eb4b1c0361d1e3542f37cf374e5df6"> 207</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a16eb4b1c0361d1e3542f37cf374e5df6">ExtIStream</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size) : m_buf(reinterpret_cast&lt;const char*&gt;(buffer)), m_flags(0)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_cur = m_buf;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_end = m_buf + size;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> uint16_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a> = LittleEndian;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_flags = *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(&amp;<a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a514afd84de123d8d691d2a0178c9c277"> 215</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a514afd84de123d8d691d2a0178c9c277">advance</a>(ptrdiff_t diff)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_cur += diff;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (m_cur &lt; m_buf)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_cur = m_buf;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_flags |= Fail;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (m_cur &gt; m_end)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_cur = m_end;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_flags |= Fail;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a4119863e75f6cdfced6ecec12180d78e"> 234</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a4119863e75f6cdfced6ecec12180d78e">view</a>()</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> m_cur;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a81f34ca062db4599ac19fb7c7a4c41e9"> 239</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a81f34ca062db4599ac19fb7c7a4c41e9">read</a>(<span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (!canRead(size)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; std::memcpy(buffer, m_cur, size);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_cur += size;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a452499fea794c56c3a9bc0bdad841571"> 247</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a452499fea794c56c3a9bc0bdad841571">tellg</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cur - m_buf; }</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#ad05d35fdbe59379f3d440adc9cae9aba"> 248</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#ad05d35fdbe59379f3d440adc9cae9aba">left</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_end - m_cur; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af2373b58b93672214c17a8b72c7b9542"> 250</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af2373b58b93672214c17a8b72c7b9542">eof</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cur &gt;= m_end; }</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af71042d83eb7b5ea27da3b0a199935a9"> 251</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#af71042d83eb7b5ea27da3b0a199935a9">fail</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (m_flags &amp; Fail) != 0; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_buf;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_cur;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_end;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint32_t m_flags;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">bool</span> isLittleEndian()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (m_flags &amp; LittleEndian) != 0; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">bool</span> canRead(<span class="keywordtype">size_t</span> size)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cur + size &lt;= m_end; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">friend</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#ad9129b4165c36b7d359886cb429ec3de">operator &gt;&gt; </a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; s, T&amp; <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;};</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ad9129b4165c36b7d359886cb429ec3de"> 268</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#ad9129b4165c36b7d359886cb429ec3de">operator &gt;&gt; </a>(<a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html">ExtIStream</a>&amp; s, T&amp; <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (s.canRead(<span class="keyword">sizeof</span>(T)))</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (s.isLittleEndian())</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; x = *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(s.m_cur);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; s.m_cur += <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">char</span>* b = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(&amp;<a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) + <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> n = <span class="keyword">sizeof</span>(T); n--;) *--b = *s.m_cur++;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; s.m_flags |= <a class="code" href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93abcd4ccd47535afcf94da29bd746ff4ac">ExtIStream::Fail</a>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> s;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_ext_i_stream_html_af71042d83eb7b5ea27da3b0a199935a9"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_i_stream.html#af71042d83eb7b5ea27da3b0a199935a9">Nv::Blast::ExtIStream::fail</a></div><div class="ttdeci">bool fail() const</div><div class="ttdef"><b>Definition:</b> NvBlastExtSerializationInternal.h:251</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_i_stream_html_a37d0ed5cee3979398dfe959cbaf09e93"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_i_stream.html#a37d0ed5cee3979398dfe959cbaf09e93">Nv::Blast::ExtIStream::Flags</a></div><div class="ttdeci">Flags</div><div class="ttdef"><b>Definition:</b> NvBlastExtSerializationInternal.h:201</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_ext_serializer_html_a4ffabc353fdc72192093b8b634cdb5b6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_ext_serializer.html#a4ffabc353fdc72192093b8b634cdb5b6">Nv::Blast::ExtSerializer::getDescription</a></div><div class="ttdeci">virtual const char * getDescription() const =0</div></div>
<div class="ttc" id="bt_vector3_8h_html_a9ac999fc46ed7720280dca03ad1e4e62"><div class="ttname"><a href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a></div><div class="ttdeci">SIMD_FORCE_INLINE const btScalar &amp; x() const</div><div class="ttdoc">Return the x value. </div><div class="ttdef"><b>Definition:</b> btVector3.h:275</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_stress_solver_8h_source.html b/docs/source_docs/files/_nv_blast_ext_stress_solver_8h_source.html
index 5a61dfd..08ea8cf 100755
--- a/docs/source_docs/files/_nv_blast_ext_stress_solver_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_stress_solver_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_stress_solver_8h_source.
<div class="title">NvBlastExtStressSolver.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0"> 58</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0">hardness</a>; </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4"> 59</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4">stressLinearFactor</a>; </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb"> 60</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb">stressAngularFactor</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9"> 62</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9">graphReductionLevel</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226"> 64</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>() :</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; hardness(1000.0f),</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; stressLinearFactor(0.25f),</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; stressAngularFactor(0.75f),</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bondIterationsPerFrame(18000),</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; graphReductionLevel(3)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html">ExtForceMode</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d"> 81</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">Enum</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">IMPULSE</a>, </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a">VELOCITY</a>, </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html"> 104</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>* create(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNodeInfo(uint32_t graphNodeIndex, <span class="keywordtype">float</span> mass, <span class="keywordtype">float</span> volume, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <span class="keywordtype">bool</span> isStatic) = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAllNodesInfoFromLL(<span class="keywordtype">float</span> density = 1.0f) = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; getSettings() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> notifyActorCreated(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> notifyActorDestroyed(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addForce(uint32_t graphNodeIndex, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addGravityForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localGravity) = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addAngularVelocity(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localCenterMass, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localAngularVelocity) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update() = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">virtual</span> uint32_t getOverstressedBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">virtual</span> uint32_t generateFractureCommandsPerActor(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actorBuffer, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandsBuffer, uint32_t bufferSize) = 0;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorLinear() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorAngular() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">virtual</span> uint32_t getFrameCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d"> 327</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da1fd3b240bb76745efd8d5d3d2664cabc"> 329</a></span>&#160; STRESS_GRAPH = 0, </div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da0b55d93864b9c304d94922037b53eb13"> 330</a></span>&#160; STRESS_GRAPH_NODES_IMPULSES = 1, </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4daf00fff35b251ccbeaa7097a7b8a3054c"> 331</a></span>&#160; STRESS_GRAPH_BONDS_IMPULSES = 2 </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; };</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html"> 337</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c"> 339</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, <span class="keyword">const</span> uint32_t&amp; c)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; : pos0(p0), color0(c), pos1(p1), color1(c) {}</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b"> 342</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b">pos0</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1"> 343</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1">color0</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf"> 344</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf">pos1</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278"> 345</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">color1</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html"> 351</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145"> 353</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145">lines</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a">lineCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; };</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a> fillDebugRender(<span class="keyword">const</span> uint32_t* nodes, uint32_t nodeCount, <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a> mode, <span class="keywordtype">float</span> scale = 1.0f) = 0;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823"> 385</a></span>&#160; <span class="keyword">static</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823">getIterationsPerFrame</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings, uint32_t bondCount)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint32_t perFrame = settings.<a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a> / (bondCount + 1);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> perFrame &gt; 0 ? perFrame : 1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396"> 398</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396">getIterationsPerFrame</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> getIterationsPerFrame(getSettings(), getBondCount());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;};</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line_html_a5c5e3c739f9ee6875264a6255b725278"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">Nv::Blast::ExtStressSolver::DebugLine::color1</a></div><div class="ttdeci">uint32_t color1</div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:345</div></div>
+<a href="_nv_blast_ext_stress_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSTRESSSOLVER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0"> 58</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ae29c611e4420f2c331f596a6017c64d0">hardness</a>; </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4"> 59</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#aee4b24619f255f4e8bbb131fa552abe4">stressLinearFactor</a>; </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb"> 60</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#acd0738cf5e4754d8b68e8177c3fa88cb">stressAngularFactor</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9"> 62</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9">graphReductionLevel</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226"> 64</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>() :</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; hardness(1000.0f),</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; stressLinearFactor(0.25f),</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; stressAngularFactor(0.75f),</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bondIterationsPerFrame(18000),</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; graphReductionLevel(3)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html"> 79</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html">ExtForceMode</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d"> 81</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">Enum</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">IMPULSE</a>, </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da1817b8c6d54b7904ce139f9953deac4a">VELOCITY</a>, </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html"> 104</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html">ExtStressSolver</a>* create(<a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>&amp; family, <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a> settings = <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a7f3daff473d9766298caea51ee396226">ExtStressSolverSettings</a>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNodeInfo(uint32_t graphNodeIndex, <span class="keywordtype">float</span> mass, <span class="keywordtype">float</span> volume, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <span class="keywordtype">bool</span> isStatic) = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAllNodesInfoFromLL(<span class="keywordtype">float</span> density = 1.0f) = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSettings(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings) = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; getSettings() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> notifyActorCreated(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> notifyActorDestroyed(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localPosition, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addForce(uint32_t graphNodeIndex, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localForce, <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3d">ExtForceMode::Enum</a> mode = <a class="code" href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">ExtForceMode::IMPULSE</a>) = 0;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addGravityForce(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localGravity) = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addAngularVelocity(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localCenterMass, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> localAngularVelocity) = 0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> update() = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">virtual</span> uint32_t getOverstressedBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>&amp; actor, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFractureCommands(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>&amp; commands) = 0;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">virtual</span> uint32_t generateFractureCommandsPerActor(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** actorBuffer, <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandsBuffer, uint32_t bufferSize) = 0;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorLinear() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">float</span> getStressErrorAngular() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">virtual</span> uint32_t getFrameCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d"> 327</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da1fd3b240bb76745efd8d5d3d2664cabc"> 329</a></span>&#160; STRESS_GRAPH = 0, </div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4da0b55d93864b9c304d94922037b53eb13"> 330</a></span>&#160; STRESS_GRAPH_NODES_IMPULSES = 1, </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4daf00fff35b251ccbeaa7097a7b8a3054c"> 331</a></span>&#160; STRESS_GRAPH_BONDS_IMPULSES = 2 </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; };</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html"> 337</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c"> 339</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a06839dbe68f1312a2094ef815906a12c">DebugLine</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p0, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; p1, <span class="keyword">const</span> uint32_t&amp; c)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; : pos0(p0), color0(c), pos1(p1), color1(c) {}</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b"> 342</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a11b806a8795d4532ad19eecbfa328c8b">pos0</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1"> 343</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#af8595a92f863b2bcf0d2ba5e2bd923a1">color0</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf"> 344</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a05ad33477f24ecdb44ef3e07e93eccaf">pos1</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278"> 345</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">color1</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html"> 351</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145"> 353</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html">DebugLine</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#a514b0803d070c82627b3fcd699c7c145">lines</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html#aa9469d3f11418efa6e3ee7a8f1976d0a">lineCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; };</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_buffer.html">DebugBuffer</a> fillDebugRender(<span class="keyword">const</span> uint32_t* nodes, uint32_t nodeCount, <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#ad0250c97326fe162fe78a2801f35ef4d">DebugRenderMode</a> mode, <span class="keywordtype">float</span> scale = 1.0f) = 0;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823"> 385</a></span>&#160; <span class="keyword">static</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#adfc63fbe02a9de751e97500f88d0c823">getIterationsPerFrame</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html">ExtStressSolverSettings</a>&amp; settings, uint32_t bondCount)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint32_t perFrame = settings.<a class="code" href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">bondIterationsPerFrame</a> / (bondCount + 1);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> perFrame &gt; 0 ? perFrame : 1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396"> 398</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_ext_stress_solver.html#a306a93645af59c4038519ffdfffac396">getIterationsPerFrame</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> getIterationsPerFrame(getSettings(), getBondCount());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;};</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSTRESSSOLVER_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line_html_a5c5e3c739f9ee6875264a6255b725278"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_1_1_debug_line.html#a5c5e3c739f9ee6875264a6255b725278">Nv::Blast::ExtStressSolver::DebugLine::color1</a></div><div class="ttdeci">uint32_t color1</div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:345</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html_a49fa3a64fe091bca26729d8e903a8ba9"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#a49fa3a64fe091bca26729d8e903a8ba9">Nv::Blast::ExtStressSolverSettings::graphReductionLevel</a></div><div class="ttdeci">uint32_t graphReductionLevel</div><div class="ttdoc">graph reduction level </div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:62</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_stress_solver_settings_html_ad489853b66a5f118e8a70b4d1e296f3d"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_stress_solver_settings.html#ad489853b66a5f118e8a70b4d1e296f3d">Nv::Blast::ExtStressSolverSettings::bondIterationsPerFrame</a></div><div class="ttdeci">uint32_t bondIterationsPerFrame</div><div class="ttdoc">number of bond iterations to perform per frame, </div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:61</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_force_mode_html_ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_force_mode.html#ae217d8688f97667f7efbf8d4f5988c3da00b3f5edacba18c30f3519ab28827545">Nv::Blast::ExtForceMode::IMPULSE</a></div><div class="ttdoc">parameter has unit of mass * distance /time </div><div class="ttdef"><b>Definition:</b> NvBlastExtStressSolver.h:83</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_sync_8h_source.html b/docs/source_docs/files/_nv_blast_ext_sync_8h_source.html
index 81731cb..642c148 100755
--- a/docs/source_docs/files/_nv_blast_ext_sync_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_sync_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_sync_8h_source.html','')
<div class="title">NvBlastExtSync.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_sync_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_8h.html">NvBlastTk.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;foundation/PxTransform.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html">ExtSyncEventType</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845"> 52</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">Enum</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17"> 54</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17">Fracture</a> = 0, </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c">FamilySync</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c"> 56</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c">Physics</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5">Count</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799"> 68</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799">ExtSyncEvent</a>(<a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> t) : type(t) {}</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137"> 69</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137">~ExtSyncEvent</a>() {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc"> 72</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc">getEvent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> release();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb">type</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3"> 84</a></span>&#160; uint64_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3">timestamp</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149"> 85</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149">familyID</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, ExtSyncEventType::Enum eventType&gt;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1">ExtSyncEventInstance</a>() : <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>(eventType) {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a433ef4a1ed60ff88841fbab46ed1675f"> 97</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> EVENT_TYPE = eventType;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a"> 99</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a">clone</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83">NVBLAST_NEW</a> (T) (*(T*)<span class="keyword">this</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html"> 109</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html">ExtSyncEventFracture</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFracture, ExtSyncEventType::Fracture&gt;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747"> 111</a></span>&#160; std::vector&lt;NvBlastBondFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747">bondFractures</a>; </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1"> 112</a></span>&#160; std::vector&lt;NvBlastChunkFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1">chunkFractures</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;};</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html"> 119</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html">ExtSyncEventFamilySync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFamilySync, ExtSyncEventType::FamilySync&gt;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f"> 121</a></span>&#160; std::vector&lt;char&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f">family</a>; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html">ExtSyncEventPhysicsSync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventPhysicsSync, ExtSyncEventType::Physics&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html"> 130</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html">ActorData</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1"> 132</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1">actorIndex</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c"> 133</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c">transform</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9"> 136</a></span>&#160; std::vector&lt;ActorData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9">data</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_sync.html"> 145</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a>* create();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getSyncBufferSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> acquireSyncBuffer(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>*<span class="keyword">const</span>*&amp; buffer, uint32_t&amp; size) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseSyncBuffer() = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applySyncBuffer(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>** buffer, uint32_t size, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* groupForNewActors, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* manager = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;};</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSYNC_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_ext_sync_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTSYNC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_8h.html">NvBlastTk.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;foundation/PxTransform.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>ExtPxFamily;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>ExtPxManager;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html">ExtSyncEventType</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845"> 52</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">Enum</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17"> 54</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ad26ff1105fa8a96fa473f00c90038f17">Fracture</a> = 0, </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c"> 55</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a6dc74e59b9f99cbb9a99cabb8542d39c">FamilySync</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c"> 56</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845ae5729ac420a34cf5e81c0781e0b8944c">Physics</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5">Count</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html"> 66</a></span>&#160;<span class="keyword">struct </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799"> 68</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a1997b9412279bea20778b66d40c7f799">ExtSyncEvent</a>(<a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> t) : type(t) {}</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137"> 69</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab7e76f954f569f0747b3da19166ff137">~ExtSyncEvent</a>() {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc"> 72</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a68c5d83e1e50a0e7f2820496130476cc">getEvent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* clone() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> release();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb"> 83</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#ab2e0f4702427030af86b0f799660debb">type</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3"> 84</a></span>&#160; uint64_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a19159cd1c7c3e2d82706df32e05bfdd3">timestamp</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149"> 85</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html#a473943adcb5a3160ecd994af1f4cd149">familyID</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, ExtSyncEventType::Enum eventType&gt;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1"> 95</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1">ExtSyncEventInstance</a>() : <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>(eventType) {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a433ef4a1ed60ff88841fbab46ed1675f"> 97</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845">ExtSyncEventType::Enum</a> EVENT_TYPE = eventType;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a"> 99</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>* <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#ac2e73c16e97747c030d8de6bdee83e3a">clone</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83">NVBLAST_NEW</a> (T) (*(T*)<span class="keyword">this</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html"> 109</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html">ExtSyncEventFracture</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFracture, ExtSyncEventType::Fracture&gt;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747"> 111</a></span>&#160; std::vector&lt;NvBlastBondFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a99b73f06831555901afd53f70dcb1747">bondFractures</a>; </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1"> 112</a></span>&#160; std::vector&lt;NvBlastChunkFractureData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_fracture.html#a1e8a1594387167dad7ec6a6b7cbfc3f1">chunkFractures</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;};</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html"> 119</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html">ExtSyncEventFamilySync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventFamilySync, ExtSyncEventType::FamilySync&gt;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f"> 121</a></span>&#160; std::vector&lt;char&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_family_sync.html#ae05d8c4d30f49166b3abcedd07ed9f0f">family</a>; </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html">ExtSyncEventPhysicsSync</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html">ExtSyncEventInstance</a>&lt;ExtSyncEventPhysicsSync, ExtSyncEventType::Physics&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html"> 130</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html">ActorData</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1"> 132</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#aa07a9a2133426b3a7f5de1e5cdccfca1">actorIndex</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c"> 133</a></span>&#160; physx::PxTransform <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_1_1_actor_data.html#a00cf151b6c7280fc5d394b8b2389ff8c">transform</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9"> 136</a></span>&#160; std::vector&lt;ActorData&gt; <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9">data</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_ext_sync.html"> 145</a></span>&#160;<span class="keyword">class </span><a class="code" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0">NV_DLL_EXPORT</a> <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_sync.html">ExtSync</a>* create();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> syncFamily(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_ext_px_family.html">ExtPxFamily</a>&amp; family) = 0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getSyncBufferSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> acquireSyncBuffer(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>*<span class="keyword">const</span>*&amp; buffer, uint32_t&amp; size) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseSyncBuffer() = 0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applySyncBuffer(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a>&amp; framework, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_ext_sync_event.html">ExtSyncEvent</a>** buffer, uint32_t size, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* groupForNewActors, <a class="code" href="class_nv_1_1_blast_1_1_ext_px_manager.html">ExtPxManager</a>* manager = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;};</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTEXTSYNC_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync_html_a9a1c1db5fb9c506a4468cca4e4e089e9"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_sync_event_physics_sync.html#a9a1c1db5fb9c506a4468cca4e4e089e9">Nv::Blast::ExtSyncEventPhysicsSync::data</a></div><div class="ttdeci">std::vector&lt; ActorData &gt; data</div><div class="ttdoc">actors data </div><div class="ttdef"><b>Definition:</b> NvBlastExtSync.h:136</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_sync_event_instance_html_a53e452712658fcd2f8c4ba272d2aa1f1"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_sync_event_instance.html#a53e452712658fcd2f8c4ba272d2aa1f1">Nv::Blast::ExtSyncEventInstance::ExtSyncEventInstance</a></div><div class="ttdeci">ExtSyncEventInstance()</div><div class="ttdef"><b>Definition:</b> NvBlastExtSync.h:95</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_ext_sync_event_type_html_a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_ext_sync_event_type.html#a9a61dab2f51aecaea8bd63c62097a845a8e821efbfc58abb1f947af0b5922f3b5">Nv::Blast::ExtSyncEventType::Count</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtSync.h:58</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_tk_serialization_8h_source.html b/docs/source_docs/files/_nv_blast_ext_tk_serialization_8h_source.html
index b2df706..85ea2a9 100755
--- a/docs/source_docs/files/_nv_blast_ext_tk_serialization_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_tk_serialization_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_tk_serialization_8h_sour
<div class="title">NvBlastExtTkSerialization.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_tk_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html">TkObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373a91e23bb0f555f807a27f1f1b37cf1a3d"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;K&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#a1bf2f52d1bbf22f380b7ce1c2919d85b">NvBlastExtTkSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#a2de4f39384a1b9ec227654a6cc35d592">NvBlastExtSerializationSerializeTkAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a>* asset);</div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
+<a href="_nv_blast_ext_tk_serialization_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>ExtSerialization;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html">TkObjectTypeID</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373"> 53</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373">Enum</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_object_type_i_d.html#a74dfb65256e079e10e40afa11bd79373a91e23bb0f555f807a27f1f1b37cf1a3d"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;K&#39;</span>, <span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">size_t</span> <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#a1bf2f52d1bbf22f380b7ce1c2919d85b">NvBlastExtTkSerializerLoadSet</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>&amp; framework, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> uint64_t <a class="code" href="_nv_blast_ext_tk_serialization_8h.html#a2de4f39384a1b9ec227654a6cc35d592">NvBlastExtSerializationSerializeTkAssetIntoBuffer</a>(<span class="keywordtype">void</span>*&amp; buffer, <a class="code" href="class_nv_1_1_blast_1_1_ext_serialization.html">Nv::Blast::ExtSerialization</a>&amp; serialization, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a>* asset);</div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="_nv_blast_ext_tk_serialization_8h_html_a2de4f39384a1b9ec227654a6cc35d592"><div class="ttname"><a href="_nv_blast_ext_tk_serialization_8h.html#a2de4f39384a1b9ec227654a6cc35d592">NvBlastExtSerializationSerializeTkAssetIntoBuffer</a></div><div class="ttdeci">NVBLAST_API uint64_t NvBlastExtSerializationSerializeTkAssetIntoBuffer(void *&amp;buffer, Nv::Blast::ExtSerialization &amp;serialization, const Nv::Blast::TkAsset *asset)</div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html_ae5c980f1b9848025a2fefa05a9d3bce1"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a></div><div class="ttdeci">#define NVBLAST_API</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessor.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_tk_serializer_c_a_p_n_8h_source.html b/docs/source_docs/files/_nv_blast_ext_tk_serializer_c_a_p_n_8h_source.html
index 369cc27..c42c91c 100755
--- a/docs/source_docs/files/_nv_blast_ext_tk_serializer_c_a_p_n_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_tk_serializer_c_a_p_n_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_tk_serializer_c_a_p_n_8h
<div class="title">NvBlastExtTkSerializerCAPN.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_tk_serializer_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_tk_asset_d_t_o_8h.html">TkAssetDTO.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;TkAsset, Serialization::TkAsset::Reader, Serialization::TkAsset::Builder&gt;::serializeIntoBuilder(Serialization::TkAsset::Builder&amp; assetBuilder, <span class="keyword">const</span> TkAsset* asset)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">TkAssetDTO::serialize</a>(assetBuilder, asset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> TkAsset* ExtSerializationCAPN&lt;TkAsset, Serialization::TkAsset::Reader, Serialization::TkAsset::Builder&gt;::deserializeFromStreamReader(capnp::InputStreamMessageReader &amp;message)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; Serialization::TkAsset::Reader reader = message.getRoot&lt;Serialization::TkAsset&gt;();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> TkAssetDTO::deserialize(reader);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;TkAsset, Serialization::TkAsset::Reader, Serialization::TkAsset::Builder&gt;::serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> TkAsset* asset)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; Serialization::TkAsset::Builder assetBuilder = message.initRoot&lt;Serialization::TkAsset&gt;();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> serializeIntoBuilder(assetBuilder, asset);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="bt_vector3_8h_html_aa97ad00bf0550636fd7e2e701fb7067f"><div class="ttname"><a href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">serialize</a></div><div class="ttdeci">SIMD_FORCE_INLINE void serialize(struct btVector3Data &amp;dataOut) const</div></div>
+<a href="_nv_blast_ext_tk_serializer_c_a_p_n_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_tk_asset_d_t_o_8h.html">TkAssetDTO.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;TkAsset, Serialization::TkAsset::Reader, Serialization::TkAsset::Builder&gt;::serializeIntoBuilder(Serialization::TkAsset::Builder&amp; assetBuilder, <span class="keyword">const</span> TkAsset* asset)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">TkAssetDTO::serialize</a>(assetBuilder, asset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> TkAsset* ExtSerializationCAPN&lt;TkAsset, Serialization::TkAsset::Reader, Serialization::TkAsset::Builder&gt;::deserializeFromStreamReader(capnp::InputStreamMessageReader &amp;message)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; Serialization::TkAsset::Reader reader = message.getRoot&lt;Serialization::TkAsset&gt;();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> TkAssetDTO::deserialize(reader);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> ExtSerializationCAPN&lt;TkAsset, Serialization::TkAsset::Reader, Serialization::TkAsset::Builder&gt;::serializeIntoMessage(capnp::MallocMessageBuilder&amp; message, <span class="keyword">const</span> TkAsset* asset)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; Serialization::TkAsset::Builder assetBuilder = message.initRoot&lt;Serialization::TkAsset&gt;();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> serializeIntoBuilder(assetBuilder, asset);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="bt_vector3_8h_html_aa97ad00bf0550636fd7e2e701fb7067f"><div class="ttname"><a href="bt_vector3_8h.html#aa97ad00bf0550636fd7e2e701fb7067f">serialize</a></div><div class="ttdeci">SIMD_FORCE_INLINE void serialize(struct btVector3Data &amp;dataOut) const</div></div>
<div class="ttc" id="_nv_blast_ext_serialization_c_a_p_n_8h_html"><div class="ttname"><a href="_nv_blast_ext_serialization_c_a_p_n_8h.html">NvBlastExtSerializationCAPN.h</a></div></div>
<div class="ttc" id="group__foundation_html_ga36a01a4a51968418a26b06da7e1ad5d0"><div class="ttname"><a href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a></div><div class="ttdeci">#define NV_INLINE</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:350</div></div>
<div class="ttc" id="_nv_blast_tk_asset_8h_html"><div class="ttname"><a href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_ext_tk_serializer_r_a_w_8h_source.html b/docs/source_docs/files/_nv_blast_ext_tk_serializer_r_a_w_8h_source.html
index 557fb13..5fa3d0d 100755
--- a/docs/source_docs/files/_nv_blast_ext_tk_serializer_r_a_w_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_tk_serializer_r_a_w_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_tk_serializer_r_a_w_8h_s
<div class="title">NvBlastExtTkSerializerRAW.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_tk_serializer_r_a_w_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>ExtIStream;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;TkAsset* <a class="code" href="namespace_nv_1_1_blast.html#a61d6196fcda06e299691bcbd8f34d48e">deserializeTkAsset</a>(ExtIStream&amp; stream, TkFramework&amp; framework);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a61d6196fcda06e299691bcbd8f34d48e"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a61d6196fcda06e299691bcbd8f34d48e">Nv::Blast::deserializeTkAsset</a></div><div class="ttdeci">TkAsset * deserializeTkAsset(ExtIStream &amp;stream, TkFramework &amp;framework)</div></div>
+<a href="_nv_blast_ext_tk_serializer_r_a_w_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkFramework;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>ExtIStream;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;TkAsset* <a class="code" href="namespace_nv_1_1_blast.html#a61d6196fcda06e299691bcbd8f34d48e">deserializeTkAsset</a>(ExtIStream&amp; stream, TkFramework&amp; framework);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a61d6196fcda06e299691bcbd8f34d48e"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a61d6196fcda06e299691bcbd8f34d48e">Nv::Blast::deserializeTkAsset</a></div><div class="ttdeci">TkAsset * deserializeTkAsset(ExtIStream &amp;stream, TkFramework &amp;framework)</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/source_docs/files/_nv_blast_ext_triangle_processor_8h_source.html b/docs/source_docs/files/_nv_blast_ext_triangle_processor_8h_source.html
index 17528b4..cdba3b7 100755
--- a/docs/source_docs/files/_nv_blast_ext_triangle_processor_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_triangle_processor_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_triangle_processor_8h_so
<div class="title">NvBlastExtTriangleProcessor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_ext_triangle_processor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTTRIANGLEPROCESSOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTTRIANGLEPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9"> 50</a></span>&#160; PxVec3 points[3];</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a13eaba7506fd27fbddb3233677cd5699"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a13eaba7506fd27fbddb3233677cd5699">TrPrcTriangle</a>(PxVec3 a = PxVec3(0.0f), PxVec3 b = PxVec3(0.0f), PxVec3 c = PxVec3(0.0f))</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; points[0] = a;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; points[1] = b;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; points[2] = c;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#aee769e8e688e1687c5ba6c6be22f502a"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#aee769e8e688e1687c5ba6c6be22f502a">operator=</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; b)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[0];</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[1];</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[2];</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#ae9cef0c8a067f17912c1ef2b95081d40"> 66</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#ae9cef0c8a067f17912c1ef2b95081d40">TrPrcTriangle</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; b)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[0];</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[1];</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[2];</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a2d99b5f1b67fa161257bb4ea9f12e0e0"> 72</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a2d99b5f1b67fa161257bb4ea9f12e0e0">getNormal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> (points[1] - points[0]).cross(points[2] - points[0]);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19"> 83</a></span>&#160; PxVec2 points[3];</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a2f61c65d8cddf3c8054ab849bd43a495"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a2f61c65d8cddf3c8054ab849bd43a495">TrPrcTriangle2d</a>(PxVec2 a = PxVec2(0.0f), PxVec2 b = PxVec2(0.0f), PxVec2 c = PxVec2(0.0f))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; points[0] = a;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; points[1] = b;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; points[2] = c;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a850b2c0552513fb056876d438cd74ff6"> 91</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a850b2c0552513fb056876d438cd74ff6">operator=</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; b)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[0];</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[1];</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[2];</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a275aa4112f44a3c6c6a6400768b612ef"> 99</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a275aa4112f44a3c6c6a6400768b612ef">TrPrcTriangle2d</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; b)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[0];</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[1];</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[2];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangle_processor.html"> 107</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html">TriangleProcessor</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangle_processor.html#a56ece4bad23e797196a0594bba04a99c"> 110</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html#a56ece4bad23e797196a0594bba04a99c">TriangleProcessor</a>(){};</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangle_processor.html#a9c5a344650f847c35f70a84a4dfab554"> 111</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html#a9c5a344650f847c35f70a84a4dfab554">~TriangleProcessor</a>() {}</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; uint32_t getTriangleIntersection(<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; a, <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; aProjected, <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; b, PxVec3&amp; centroid,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; std::vector&lt;PxVec3&gt;&amp; intersectionBuffer, PxVec3 <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">bool</span> triangleBoundingBoxIntersection(<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; a, <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; b);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uint32_t isPointInside(<span class="keyword">const</span> PxVec2&amp; point, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; triangle);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; uint32_t getSegmentIntersection(<span class="keyword">const</span> PxVec2&amp; s1, <span class="keyword">const</span> PxVec2&amp; e1, <span class="keyword">const</span> PxVec2&amp; s2, <span class="keyword">const</span> PxVec2&amp; e2, PxF32&amp; t1);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> sortToCCW(std::vector&lt;PxVec3&gt;&amp; points, PxVec3&amp; normal);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">void</span> buildConvexHull(std::vector&lt;PxVec3&gt;&amp; points, std::vector&lt;PxVec3&gt;&amp; convexHull, <span class="keyword">const</span> PxVec3&amp; normal);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;};</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTTRIANGLEPROCESSOR_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_ext_triangle_processor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTEXTTRIANGLEPROCESSOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTEXTTRIANGLEPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacephysx.html">physx</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9"> 50</a></span>&#160; PxVec3 points[3];</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a13eaba7506fd27fbddb3233677cd5699"> 51</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a13eaba7506fd27fbddb3233677cd5699">TrPrcTriangle</a>(PxVec3 a = PxVec3(0.0f), PxVec3 b = PxVec3(0.0f), PxVec3 c = PxVec3(0.0f))</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; points[0] = a;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; points[1] = b;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; points[2] = c;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#aee769e8e688e1687c5ba6c6be22f502a"> 58</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#aee769e8e688e1687c5ba6c6be22f502a">operator=</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; b)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[0];</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[1];</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[2];</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#ae9cef0c8a067f17912c1ef2b95081d40"> 66</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#ae9cef0c8a067f17912c1ef2b95081d40">TrPrcTriangle</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; b)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[0];</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[1];</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a51e2edc3fd1595606bf16fe29c34f0f9">points</a>[2];</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a2d99b5f1b67fa161257bb4ea9f12e0e0"> 72</a></span>&#160; PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a2d99b5f1b67fa161257bb4ea9f12e0e0">getNormal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> (points[1] - points[0]).cross(points[2] - points[0]);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19"> 83</a></span>&#160; PxVec2 points[3];</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a2f61c65d8cddf3c8054ab849bd43a495"> 84</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a2f61c65d8cddf3c8054ab849bd43a495">TrPrcTriangle2d</a>(PxVec2 a = PxVec2(0.0f), PxVec2 b = PxVec2(0.0f), PxVec2 c = PxVec2(0.0f))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; points[0] = a;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; points[1] = b;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; points[2] = c;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a850b2c0552513fb056876d438cd74ff6"> 91</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a850b2c0552513fb056876d438cd74ff6">operator=</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; b)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[0];</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[1];</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[2];</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a275aa4112f44a3c6c6a6400768b612ef"> 99</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a275aa4112f44a3c6c6a6400768b612ef">TrPrcTriangle2d</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; b)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; points[0] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[0];</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; points[1] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[1];</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; points[2] = b.<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a877675cc4f9d9dbcb3f9a70c84bd0c19">points</a>[2];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangle_processor.html"> 107</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html">TriangleProcessor</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangle_processor.html#a56ece4bad23e797196a0594bba04a99c"> 110</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html#a56ece4bad23e797196a0594bba04a99c">TriangleProcessor</a>(){};</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_triangle_processor.html#a9c5a344650f847c35f70a84a4dfab554"> 111</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_triangle_processor.html#a9c5a344650f847c35f70a84a4dfab554">~TriangleProcessor</a>() {}</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; uint32_t getTriangleIntersection(<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; a, <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; aProjected, <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html">TrPrcTriangle</a>&amp; b, PxVec3&amp; centroid,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; std::vector&lt;PxVec3&gt;&amp; intersectionBuffer, PxVec3 <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">bool</span> triangleBoundingBoxIntersection(<a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; a, <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; b);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uint32_t isPointInside(<span class="keyword">const</span> PxVec2&amp; point, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html">TrPrcTriangle2d</a>&amp; triangle);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; uint32_t getSegmentIntersection(<span class="keyword">const</span> PxVec2&amp; s1, <span class="keyword">const</span> PxVec2&amp; e1, <span class="keyword">const</span> PxVec2&amp; s2, <span class="keyword">const</span> PxVec2&amp; e2, PxF32&amp; t1);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> sortToCCW(std::vector&lt;PxVec3&gt;&amp; points, PxVec3&amp; normal);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">void</span> buildConvexHull(std::vector&lt;PxVec3&gt;&amp; points, std::vector&lt;PxVec3&gt;&amp; convexHull, <span class="keyword">const</span> PxVec3&amp; normal);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;};</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#endif // NVBLASTEXTTRIANGLEPROCESSOR_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tr_prc_triangle_html_a2d99b5f1b67fa161257bb4ea9f12e0e0"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tr_prc_triangle.html#a2d99b5f1b67fa161257bb4ea9f12e0e0">Nv::Blast::TrPrcTriangle::getNormal</a></div><div class="ttdeci">PxVec3 getNormal() const</div><div class="ttdef"><b>Definition:</b> NvBlastExtTriangleProcessor.h:72</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tr_prc_triangle2d_html_a275aa4112f44a3c6c6a6400768b612ef"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tr_prc_triangle2d.html#a275aa4112f44a3c6c6a6400768b612ef">Nv::Blast::TrPrcTriangle2d::TrPrcTriangle2d</a></div><div class="ttdeci">TrPrcTriangle2d(const TrPrcTriangle2d &amp;b)</div><div class="ttdef"><b>Definition:</b> NvBlastExtTriangleProcessor.h:99</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a1c8d1bbcf531b04e6ff52f5357987794"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">Nv::Blast::VecMath::normal</a></div><div class="ttdeci">NV_INLINE float normal(const float a[3], float r[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:93</div></div>
diff --git a/docs/source_docs/files/_nv_blast_family_8h_source.html b/docs/source_docs/files/_nv_blast_family_8h_source.html
index cd77417..870bb80 100755
--- a/docs/source_docs/files/_nv_blast_family_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_family_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_family_8h_source.html','');}
<div class="title">NvBlastFamily.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_atomic_8h.html">NvBlastAtomic.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span>FamilyGraph;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>Actor;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>Asset;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html"> 61</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ae2a59d9dd49c92dcb6abb9ad46849976"> 66</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ae2a59d9dd49c92dcb6abb9ad46849976">m_assetID</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>, m_actorsOffset, getActors, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>, m_visibleChunkIndexLinksOffset, getVisibleChunkIndexLinks, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(uint32_t, m_chunkActorIndicesOffset, getChunkActorIndices, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(uint32_t, m_graphNodeIndexLinksOffset, getGraphNodeIndexLinks, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<span class="keywordtype">float</span>, m_lowerSupportChunkHealthsOffset, getLowerSupportChunkHealths, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">getLowerSupportChunkCount</a>());</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a58c464d4f1ab0736c2a55e034d5b0223"> 113</a></span>&#160; <span class="keywordtype">float</span>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a58c464d4f1ab0736c2a55e034d5b0223">getSubsupportChunkHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a> != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">float</span>*)((uintptr_t)<span class="keyword">this</span> + m_lowerSupportChunkHealthsOffset) + <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<span class="keywordtype">float</span>, m_graphBondHealthsOffset, getBondHealths, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470">getBondCount</a>());</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#af242d21a84d28cf24877def66e1d5729">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>, m_familyGraphOffset, getFamilyGraph);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846"> 140</a></span>&#160; <span class="keyword">volatile</span> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">union</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1"> 148</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a2045936da536ed27b97eb2fc9aea9b03"> 149</a></span>&#160; uint64_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2045936da536ed27b97eb2fc9aea9b03">m_runtimePlaceholder</a>; <span class="comment">// Make sure we reserve enough room for an 8-byte pointer</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6dde29ddbcaa4e7f85d3d5339db300ad">borrowActor</a>(uint32_t index);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a">returnActor</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a9e58bee9eba848f0d5e65e0d63707f97">isActorActive</a>(uint32_t index) <span class="keyword">const</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">getActorByIndex</a>(uint32_t index) <span class="keyword">const</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d">getGetChunkActorIndex</a>(uint32_t chunkIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b">getGetNodeActorIndex</a>(uint32_t nodeIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad9e75fec6c74071b23efd6b149a9a88e">getGetChunkActor</a>(uint32_t chunkIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ae17c9cdbfd5182ebaee2773a28f0443c">getGetNodeActor</a>(uint32_t nodeIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#adb022b7eb3444d2ac3a8a2d5de98a9b5">fractureSubSupportNoEvents</a>(uint32_t chunkIndex, uint32_t suboffset, <span class="keywordtype">float</span> healthDamage, <span class="keywordtype">float</span>* chunkHealths, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2a8ef3805c7eaa784d181c5af6021eaa">fractureSubSupport</a>(uint32_t chunkIndex, uint32_t suboffset, <span class="keywordtype">float</span> healthDamage, <span class="keywordtype">float</span>* chunkHealths, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks, <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* outBuffer, uint32_t* currentIndex, <span class="keyword">const</span> uint32_t maxCount);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a8c8dbf18c71bfd84c101542fce8498ff">fractureNoEvents</a>(uint32_t chunkFractureCount, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* chunkFractures, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a89f293e52b88ad129c5f202ed2205dd8">fractureWithEvents</a>(uint32_t chunkFractureCount, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* commands, <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* events, uint32_t eventsSize, uint32_t* count, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a44bed5d2801cd48c30141d21e1852816">fractureInPlaceEvents</a>(uint32_t chunkFractureCount, <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* inoutbuffer, uint32_t eventsSize, uint32_t* count, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a5361b8667e8a10f440f04248e232cd2f">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;};</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_actor_8h.html">NvBlastActor.h</a>&quot;</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;{</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a6dde29ddbcaa4e7f85d3d5339db300ad"> 333</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6dde29ddbcaa4e7f85d3d5339db300ad">FamilyHeader::borrowActor</a>(uint32_t index)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;{</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>());</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor = getActors()[index];</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span> (actor.m_familyOffset == 0)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">const</span> uintptr_t offset = (uintptr_t)&amp;actor - (uintptr_t)<span class="keyword">this</span>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(offset &lt;= <a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; actor.m_familyOffset = (uint32_t)offset;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a02d7c995394a2e2c7f0b18ee051bec2f">atomicIncrement</a>(reinterpret_cast&lt;volatile int32_t*&gt;(&amp;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a>));</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> &amp;actor;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a"> 348</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a">FamilyHeader::returnActor</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor)</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;{</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (actor.m_familyOffset != 0)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; actor.m_familyOffset = 0;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="comment">// The actor count should be positive since this actor was valid. Check to be safe.</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a> &gt; 0);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#aa0a1acaf4abe11be6cfdcf14cecf4818">atomicDecrement</a>(reinterpret_cast&lt;volatile int32_t*&gt;(&amp;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a>));</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;}</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32"> 360</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">FamilyHeader::getActorBufferSize</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">getLowerSupportChunkCount</a>();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;}</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a9e58bee9eba848f0d5e65e0d63707f97"> 367</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a9e58bee9eba848f0d5e65e0d63707f97">FamilyHeader::isActorActive</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>());</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> getActors()[index].m_familyOffset != 0;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e"> 374</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">FamilyHeader::getActorByIndex</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>());</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor = getActors()[index];</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> actor.<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>() ? &amp;actor : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;}</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d"> 382</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d">FamilyHeader::getGetChunkActorIndex</a>(uint32_t chunkIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(chunkIndex &lt; m_asset-&gt;m_chunkCount);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (chunkIndex &lt; m_asset-&gt;getUpperSupportChunkCount())</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> getChunkActorIndices()[chunkIndex];</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> chunkIndex - (<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">getUpperSupportChunkCount</a>() - <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b"> 397</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b">FamilyHeader::getGetNodeActorIndex</a>(uint32_t nodeIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(nodeIndex &lt; m_asset-&gt;m_graph.m_nodeCount);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">const</span> uint32_t chunkIndex = <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.getChunkIndices()[nodeIndex];</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndex) ? chunkIndex : getChunkActorIndices()[chunkIndex];</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;}</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ad9e75fec6c74071b23efd6b149a9a88e"> 406</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad9e75fec6c74071b23efd6b149a9a88e">FamilyHeader::getGetChunkActor</a>(uint32_t chunkIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; uint32_t actorIndex = <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d">getGetChunkActorIndex</a>(chunkIndex);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(actorIndex) ? <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">getActorByIndex</a>(actorIndex) : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;}</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ae17c9cdbfd5182ebaee2773a28f0443c"> 413</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ae17c9cdbfd5182ebaee2773a28f0443c">FamilyHeader::getGetNodeActor</a>(uint32_t nodeIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; uint32_t actorIndex = <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b">getGetNodeActorIndex</a>(nodeIndex);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(actorIndex) ? <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">getActorByIndex</a>(actorIndex) : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="namespace_nv_1_1_blast.html#a865dd402e2f1af88e0d8df296d4f10d3">getFamilyMemorySize</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* asset);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFAMILY_H</span></div><div class="ttc" id="_nv_blast_preprocessor_internal_8h_html_ab5eb23180f7cc12b7d6c04a8ec067fdd"><div class="ttname"><a href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a></div><div class="ttdeci">#define UINT32_MAX</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessorInternal.h:68</div></div>
+<a href="_nv_blast_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_asset_8h.html">NvBlastAsset.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_atomic_8h.html">NvBlastAtomic.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span>FamilyGraph;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>Actor;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>Asset;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html"> 61</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_family_header.html">FamilyHeader</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ae2a59d9dd49c92dcb6abb9ad46849976"> 66</a></span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ae2a59d9dd49c92dcb6abb9ad46849976">m_assetID</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>, m_actorsOffset, getActors, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;uint32_t&gt;</a>, m_visibleChunkIndexLinksOffset, getVisibleChunkIndexLinks, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a2fca1fdbe87c49f04736dd6b6d176177">m_chunkCount</a>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(uint32_t, m_chunkActorIndicesOffset, getChunkActorIndices, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a6cfa7f72e5f815e519550dd46dc087a9">m_firstSubsupportChunkIndex</a>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(uint32_t, m_graphNodeIndexLinksOffset, getGraphNodeIndexLinks, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<span class="keywordtype">float</span>, m_lowerSupportChunkHealthsOffset, getLowerSupportChunkHealths, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">getLowerSupportChunkCount</a>());</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a58c464d4f1ab0736c2a55e034d5b0223"> 113</a></span>&#160; <span class="keywordtype">float</span>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a58c464d4f1ab0736c2a55e034d5b0223">getSubsupportChunkHealths</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a> != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">float</span>*)((uintptr_t)<span class="keyword">this</span> + m_lowerSupportChunkHealthsOffset) + <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad03aae1a3bd35af2196fa03d549128f1">NvBlastBlockArrayData</a>(<span class="keywordtype">float</span>, m_graphBondHealthsOffset, getBondHealths, <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a623e6e17f164872ebee9b411cce23470">getBondCount</a>());</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#af242d21a84d28cf24877def66e1d5729">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>, m_familyGraphOffset, getFamilyGraph);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846"> 140</a></span>&#160; <span class="keyword">volatile</span> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">union</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1"> 148</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a2045936da536ed27b97eb2fc9aea9b03"> 149</a></span>&#160; uint64_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2045936da536ed27b97eb2fc9aea9b03">m_runtimePlaceholder</a>; <span class="comment">// Make sure we reserve enough room for an 8-byte pointer</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6dde29ddbcaa4e7f85d3d5339db300ad">borrowActor</a>(uint32_t index);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a">returnActor</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a9e58bee9eba848f0d5e65e0d63707f97">isActorActive</a>(uint32_t index) <span class="keyword">const</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">getActorByIndex</a>(uint32_t index) <span class="keyword">const</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d">getGetChunkActorIndex</a>(uint32_t chunkIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b">getGetNodeActorIndex</a>(uint32_t nodeIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad9e75fec6c74071b23efd6b149a9a88e">getGetChunkActor</a>(uint32_t chunkIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ae17c9cdbfd5182ebaee2773a28f0443c">getGetNodeActor</a>(uint32_t nodeIndex) <span class="keyword">const</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#adb022b7eb3444d2ac3a8a2d5de98a9b5">fractureSubSupportNoEvents</a>(uint32_t chunkIndex, uint32_t suboffset, <span class="keywordtype">float</span> healthDamage, <span class="keywordtype">float</span>* chunkHealths, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2a8ef3805c7eaa784d181c5af6021eaa">fractureSubSupport</a>(uint32_t chunkIndex, uint32_t suboffset, <span class="keywordtype">float</span> healthDamage, <span class="keywordtype">float</span>* chunkHealths, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* chunks, <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* outBuffer, uint32_t* currentIndex, <span class="keyword">const</span> uint32_t maxCount);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a8c8dbf18c71bfd84c101542fce8498ff">fractureNoEvents</a>(uint32_t chunkFractureCount, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* chunkFractures, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a89f293e52b88ad129c5f202ed2205dd8">fractureWithEvents</a>(uint32_t chunkFractureCount, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* commands, <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* events, uint32_t eventsSize, uint32_t* count, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a44bed5d2801cd48c30141d21e1852816">fractureInPlaceEvents</a>(uint32_t chunkFractureCount, <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* inoutbuffer, uint32_t eventsSize, uint32_t* count, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a5361b8667e8a10f440f04248e232cd2f">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* filterActor, <a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a> logFn, <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>* timers);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;};</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_actor_8h.html">NvBlastActor.h</a>&quot;</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;{</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a6dde29ddbcaa4e7f85d3d5339db300ad"> 333</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6dde29ddbcaa4e7f85d3d5339db300ad">FamilyHeader::borrowActor</a>(uint32_t index)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;{</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>());</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor = getActors()[index];</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span> (actor.m_familyOffset == 0)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">const</span> uintptr_t offset = (uintptr_t)&amp;actor - (uintptr_t)<span class="keyword">this</span>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(offset &lt;= <a class="code" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a>);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; actor.m_familyOffset = (uint32_t)offset;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#a02d7c995394a2e2c7f0b18ee051bec2f">atomicIncrement</a>(reinterpret_cast&lt;volatile int32_t*&gt;(&amp;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a>));</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> &amp;actor;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a"> 348</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#acc4fd2c9b502b0a1114ec672ee64c04a">FamilyHeader::returnActor</a>(<a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor)</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;{</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (actor.m_familyOffset != 0)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; actor.m_familyOffset = 0;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="comment">// The actor count should be positive since this actor was valid. Check to be safe.</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a> &gt; 0);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespace_nv_1_1_blast.html#aa0a1acaf4abe11be6cfdcf14cecf4818">atomicDecrement</a>(reinterpret_cast&lt;volatile int32_t*&gt;(&amp;<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a6667d4314fbb8eacf132cc81e8920846">m_actorCount</a>));</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;}</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32"> 360</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">FamilyHeader::getActorBufferSize</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#af7a3e783e9997c651d0343cfc76faedc">getLowerSupportChunkCount</a>();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;}</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a9e58bee9eba848f0d5e65e0d63707f97"> 367</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a9e58bee9eba848f0d5e65e0d63707f97">FamilyHeader::isActorActive</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>());</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> getActors()[index].m_familyOffset != 0;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e"> 374</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">FamilyHeader::getActorByIndex</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a869e926c2ba8cc6580fbab1cb601fa32">getActorBufferSize</a>());</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>&amp; actor = getActors()[index];</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> actor.<a class="code" href="class_nv_1_1_blast_1_1_actor.html#ab47a9d933f097ee0175c8bbe279531ba">isActive</a>() ? &amp;actor : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;}</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d"> 382</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d">FamilyHeader::getGetChunkActorIndex</a>(uint32_t chunkIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(chunkIndex &lt; m_asset-&gt;m_chunkCount);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (chunkIndex &lt; m_asset-&gt;getUpperSupportChunkCount())</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> getChunkActorIndices()[chunkIndex];</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> chunkIndex - (<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331">getUpperSupportChunkCount</a>() - <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.<a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b"> 397</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b">FamilyHeader::getGetNodeActorIndex</a>(uint32_t nodeIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(nodeIndex &lt; m_asset-&gt;m_graph.m_nodeCount);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">const</span> uint32_t chunkIndex = <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ab1500a7965fb35635af84a091cf399e1">m_asset</a>-&gt;<a class="code" href="class_nv_1_1_blast_1_1_asset.html#ad07d72453b9db6a1387f7fbd934eb2fd">m_graph</a>.getChunkIndices()[nodeIndex];</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndex) ? chunkIndex : getChunkActorIndices()[chunkIndex];</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;}</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ad9e75fec6c74071b23efd6b149a9a88e"> 406</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ad9e75fec6c74071b23efd6b149a9a88e">FamilyHeader::getGetChunkActor</a>(uint32_t chunkIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; uint32_t actorIndex = <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a2ca71f8bea5665e0953a0e254506692d">getGetChunkActorIndex</a>(chunkIndex);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(actorIndex) ? <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">getActorByIndex</a>(actorIndex) : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;}</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_family_header.html#ae17c9cdbfd5182ebaee2773a28f0443c"> 413</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_actor.html">Actor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#ae17c9cdbfd5182ebaee2773a28f0443c">FamilyHeader::getGetNodeActor</a>(uint32_t nodeIndex)<span class="keyword"> const</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; uint32_t actorIndex = <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a7bd800b1dea859ee4382d7da92d9ac5b">getGetNodeActorIndex</a>(nodeIndex);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(actorIndex) ? <a class="code" href="struct_nv_1_1_blast_1_1_family_header.html#a15f6e87f69c5c84685af781f1b41413e">getActorByIndex</a>(actorIndex) : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="namespace_nv_1_1_blast.html#a865dd402e2f1af88e0d8df296d4f10d3">getFamilyMemorySize</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>* asset);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFAMILY_H</span></div><div class="ttc" id="_nv_blast_preprocessor_internal_8h_html_ab5eb23180f7cc12b7d6c04a8ec067fdd"><div class="ttname"><a href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd">UINT32_MAX</a></div><div class="ttdeci">#define UINT32_MAX</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessorInternal.h:68</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_family_header_html_a89f293e52b88ad129c5f202ed2205dd8"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_family_header.html#a89f293e52b88ad129c5f202ed2205dd8">Nv::Blast::FamilyHeader::fractureWithEvents</a></div><div class="ttdeci">void fractureWithEvents(uint32_t chunkFractureCount, const NvBlastChunkFractureData *commands, NvBlastChunkFractureData *events, uint32_t eventsSize, uint32_t *count, Actor *filterActor, NvBlastLog logFn)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_family_graph_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_family_graph.html">Nv::Blast::FamilyGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastFamilyGraph.h:58</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_family_header_html_adb022b7eb3444d2ac3a8a2d5de98a9b5"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_family_header.html#adb022b7eb3444d2ac3a8a2d5de98a9b5">Nv::Blast::FamilyHeader::fractureSubSupportNoEvents</a></div><div class="ttdeci">void fractureSubSupportNoEvents(uint32_t chunkIndex, uint32_t suboffset, float healthDamage, float *chunkHealths, const NvBlastChunk *chunks)</div></div>
diff --git a/docs/source_docs/files/_nv_blast_family_graph_8h_source.html b/docs/source_docs/files/_nv_blast_family_graph_8h_source.html
index 16d9be5..174fb06 100755
--- a/docs/source_docs/files/_nv_blast_family_graph_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_family_graph_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_family_graph_8h_source.html'
<div class="title">NvBlastFamilyGraph.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_family_graph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFAMILYGRAPH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFAMILYGRAPH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_support_graph_8h.html">NvBlastSupportGraph.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_array_8h.html">NvBlastFixedArray.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_bitmap_8h.html">NvBlastFixedBitmap.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_bool_array_8h.html">NvBlastFixedBoolArray.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_math_8h.html">NvBlastMath.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_priority_queue_8h.html">NvBlastFixedPriorityQueue.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a32d5787be500421cf94051656ce83180"> 48</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a32d5787be500421cf94051656ce83180">NodeIndex</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a085b488e62b111ada7f5201a0275c7b9"> 49</a></span>&#160;<span class="keyword">typedef</span> NodeIndex <a class="code" href="namespace_nv_1_1_blast.html#a085b488e62b111ada7f5201a0275c7b9">IslandId</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a752c6d0048c1c381bceb31504031baae"> 50</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a752c6d0048c1c381bceb31504031baae">ActorIndex</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_family_graph.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#aff8871001503dc6b1a7c872c01578dca">FamilyGraph</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_family_graph.html#a6cbe86b66715aeaf932fa83192d54216"> 80</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a6cbe86b66715aeaf932fa83192d54216">requiredMemorySize</a>(uint32_t nodeCount, uint32_t bondCount)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> fillMemory(<span class="keyword">nullptr</span>, nodeCount, bondCount);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a4914e92e8f2aaf4fda371bfc9daba35c">initialize</a>(ActorIndex actorIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a17c044a082bdc849eebc9f76e21c6177">notifyEdgeRemoved</a>(ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a17c044a082bdc849eebc9f76e21c6177">notifyEdgeRemoved</a>(ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, uint32_t bondIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a4822fb5f51e39a36e01d070a79b76497">notifyNodeRemoved</a>(ActorIndex actorIndex, NodeIndex nodeIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a167fe452bc2d1774c22eb18a3aed77f2">findIslands</a>(ActorIndex actorIndex, <span class="keywordtype">void</span>* scratch, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a4eb099c1eb38d13f411a2832a50a60ef">findIslandsRequiredScratch</a>(uint32_t graphNodeCount);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(IslandId, m_islandIdsOffset, getIslandIds);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(NodeIndex, m_dirtyNodeLinksOffset, getDirtyNodeLinks);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(uint32_t, m_firstDirtyNodeIndicesOffset, getFirstDirtyNodeIndices);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(NodeIndex, m_fastRouteOffset, getFastRoute);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(uint32_t, m_hopCountsOffset, getHopCounts);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>, m_isEdgeRemovedOffset, getIsEdgeRemoved);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>, m_isNodeInDirtyListOffset, getIsNodeInDirtyList);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a54d27860d98c37143eb8942fbe7e37ab">getEdgesCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph) <span class="keyword">const</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#aa2d333338ca2d99f67ff1896cb8eec2f">hasEdge</a>(NodeIndex node0, NodeIndex node1, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph) <span class="keyword">const</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a522082e2bf8c1b793cf37655f92bab72">canFindRoot</a>(NodeIndex startNode, NodeIndex targetNode, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;NodeIndex&gt;</a>* visitedNodes, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>&amp; operator = (<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>&amp;);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">struct </span>TraversalState</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; NodeIndex mNodeIndex;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint32_t mCurrentIndex;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint32_t mPrevIndex;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint32_t mDepth;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; TraversalState()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; TraversalState(NodeIndex nodeIndex, uint32_t currentIndex, uint32_t prevIndex, uint32_t depth) :</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; mNodeIndex(nodeIndex), mCurrentIndex(currentIndex), mPrevIndex(prevIndex), mDepth(depth)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">struct </span>QueueElement</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; TraversalState* mState;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uint32_t mHopCount;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; QueueElement()</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; QueueElement(TraversalState* state, uint32_t hopCount) : mState(state), mHopCount(hopCount)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; };</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">struct </span>NodeComparator</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; NodeComparator()</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">bool</span> operator() (<span class="keyword">const</span> QueueElement&amp; node0, <span class="keyword">const</span> QueueElement&amp; node1)<span class="keyword"> const</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> node0.mHopCount &lt; node1.mHopCount;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; NodeComparator&amp; operator = (<span class="keyword">const</span> NodeComparator&amp;);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; };</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;QueueElement, NodeComparator&gt;</a> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">NodePriorityQueue</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> fillMemory(<a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>* familyGraph, uint32_t nodeCount, uint32_t bondCount);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">bool</span> findRoute(NodeIndex startNode, NodeIndex targetNode, IslandId islandId, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;TraversalState&gt;</a>* visitedNodes, <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>* isNodeWitness, NodePriorityQueue* priorityQueue, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">bool</span> tryFastPath(NodeIndex startNode, NodeIndex targetNode, IslandId islandId, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;TraversalState&gt;</a>* visitedNodes, <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>* isNodeWitness, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> unwindRoute(uint32_t traversalIndex, NodeIndex lastNode, uint32_t hopCount, IslandId <span class="keywordtype">id</span>, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;TraversalState&gt;</a>* visitedNodes);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">void</span> addToDirtyNodeList(ActorIndex actorIndex, NodeIndex node);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; NodeIndex getAdjacentNode(uint32_t adjacencyIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph)<span class="keyword"> const</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> uint32_t bondIndex = graph-&gt;getAdjacentBondIndices()[adjacencyIndex];</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> getIsEdgeRemoved()-&gt;test(bondIndex) ? invalidIndex&lt;uint32_t&gt;() : graph-&gt;getAdjacentNodeIndices()[adjacencyIndex];</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;};</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFAMILYGRAPH_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_family_graph_html_a17c044a082bdc849eebc9f76e21c6177"><div class="ttname"><a href="class_nv_1_1_blast_1_1_family_graph.html#a17c044a082bdc849eebc9f76e21c6177">Nv::Blast::FamilyGraph::notifyEdgeRemoved</a></div><div class="ttdeci">bool notifyEdgeRemoved(ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, const SupportGraph *graph)</div></div>
+<a href="_nv_blast_family_graph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFAMILYGRAPH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFAMILYGRAPH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_support_graph_8h.html">NvBlastSupportGraph.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_array_8h.html">NvBlastFixedArray.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_bitmap_8h.html">NvBlastFixedBitmap.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_bool_array_8h.html">NvBlastFixedBoolArray.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_math_8h.html">NvBlastMath.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_fixed_priority_queue_8h.html">NvBlastFixedPriorityQueue.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a32d5787be500421cf94051656ce83180"> 48</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a32d5787be500421cf94051656ce83180">NodeIndex</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a085b488e62b111ada7f5201a0275c7b9"> 49</a></span>&#160;<span class="keyword">typedef</span> NodeIndex <a class="code" href="namespace_nv_1_1_blast.html#a085b488e62b111ada7f5201a0275c7b9">IslandId</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a752c6d0048c1c381bceb31504031baae"> 50</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a752c6d0048c1c381bceb31504031baae">ActorIndex</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_family_graph.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#aff8871001503dc6b1a7c872c01578dca">FamilyGraph</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_family_graph.html#a6cbe86b66715aeaf932fa83192d54216"> 80</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a6cbe86b66715aeaf932fa83192d54216">requiredMemorySize</a>(uint32_t nodeCount, uint32_t bondCount)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> fillMemory(<span class="keyword">nullptr</span>, nodeCount, bondCount);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a4914e92e8f2aaf4fda371bfc9daba35c">initialize</a>(ActorIndex actorIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a17c044a082bdc849eebc9f76e21c6177">notifyEdgeRemoved</a>(ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a17c044a082bdc849eebc9f76e21c6177">notifyEdgeRemoved</a>(ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, uint32_t bondIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a4822fb5f51e39a36e01d070a79b76497">notifyNodeRemoved</a>(ActorIndex actorIndex, NodeIndex nodeIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a167fe452bc2d1774c22eb18a3aed77f2">findIslands</a>(ActorIndex actorIndex, <span class="keywordtype">void</span>* scratch, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a4eb099c1eb38d13f411a2832a50a60ef">findIslandsRequiredScratch</a>(uint32_t graphNodeCount);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(IslandId, m_islandIdsOffset, getIslandIds);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(NodeIndex, m_dirtyNodeLinksOffset, getDirtyNodeLinks);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(uint32_t, m_firstDirtyNodeIndicesOffset, getFirstDirtyNodeIndices);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(NodeIndex, m_fastRouteOffset, getFastRoute);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(uint32_t, m_hopCountsOffset, getHopCounts);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>, m_isEdgeRemovedOffset, getIsEdgeRemoved);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a5257a8052b6cc1e57babdbbdf49b4e78">NvBlastBlockData</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>, m_isNodeInDirtyListOffset, getIsNodeInDirtyList);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a54d27860d98c37143eb8942fbe7e37ab">getEdgesCount</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph) <span class="keyword">const</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#aa2d333338ca2d99f67ff1896cb8eec2f">hasEdge</a>(NodeIndex node0, NodeIndex node1, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph) <span class="keyword">const</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html#a522082e2bf8c1b793cf37655f92bab72">canFindRoot</a>(NodeIndex startNode, NodeIndex targetNode, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;NodeIndex&gt;</a>* visitedNodes, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>&amp; operator = (<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>&amp;);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">struct </span>TraversalState</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; NodeIndex mNodeIndex;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint32_t mCurrentIndex;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint32_t mPrevIndex;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint32_t mDepth;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; TraversalState()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; TraversalState(NodeIndex nodeIndex, uint32_t currentIndex, uint32_t prevIndex, uint32_t depth) :</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; mNodeIndex(nodeIndex), mCurrentIndex(currentIndex), mPrevIndex(prevIndex), mDepth(depth)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">struct </span>QueueElement</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; TraversalState* mState;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; uint32_t mHopCount;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; QueueElement()</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; QueueElement(TraversalState* state, uint32_t hopCount) : mState(state), mHopCount(hopCount)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; };</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">struct </span>NodeComparator</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; NodeComparator()</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">bool</span> operator() (<span class="keyword">const</span> QueueElement&amp; node0, <span class="keyword">const</span> QueueElement&amp; node1)<span class="keyword"> const</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> node0.mHopCount &lt; node1.mHopCount;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; NodeComparator&amp; operator = (<span class="keyword">const</span> NodeComparator&amp;);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; };</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;QueueElement, NodeComparator&gt;</a> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">NodePriorityQueue</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> fillMemory(<a class="code" href="class_nv_1_1_blast_1_1_family_graph.html">FamilyGraph</a>* familyGraph, uint32_t nodeCount, uint32_t bondCount);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">bool</span> findRoute(NodeIndex startNode, NodeIndex targetNode, IslandId islandId, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;TraversalState&gt;</a>* visitedNodes, <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>* isNodeWitness, NodePriorityQueue* priorityQueue, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">bool</span> tryFastPath(NodeIndex startNode, NodeIndex targetNode, IslandId islandId, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;TraversalState&gt;</a>* visitedNodes, <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>* isNodeWitness, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> unwindRoute(uint32_t traversalIndex, NodeIndex lastNode, uint32_t hopCount, IslandId <span class="keywordtype">id</span>, <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;TraversalState&gt;</a>* visitedNodes);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">void</span> addToDirtyNodeList(ActorIndex actorIndex, NodeIndex node);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; NodeIndex getAdjacentNode(uint32_t adjacencyIndex, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a>* graph)<span class="keyword"> const</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> uint32_t bondIndex = graph-&gt;getAdjacentBondIndices()[adjacencyIndex];</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> getIsEdgeRemoved()-&gt;test(bondIndex) ? invalidIndex&lt;uint32_t&gt;() : graph-&gt;getAdjacentNodeIndices()[adjacencyIndex];</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;};</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFAMILYGRAPH_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_family_graph_html_a17c044a082bdc849eebc9f76e21c6177"><div class="ttname"><a href="class_nv_1_1_blast_1_1_family_graph.html#a17c044a082bdc849eebc9f76e21c6177">Nv::Blast::FamilyGraph::notifyEdgeRemoved</a></div><div class="ttdeci">bool notifyEdgeRemoved(ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, const SupportGraph *graph)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html">Nv::Blast::FixedBoolArray</a></div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:63</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_family_graph_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_family_graph.html">Nv::Blast::FamilyGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastFamilyGraph.h:58</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_family_graph_html_a167fe452bc2d1774c22eb18a3aed77f2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_family_graph.html#a167fe452bc2d1774c22eb18a3aed77f2">Nv::Blast::FamilyGraph::findIslands</a></div><div class="ttdeci">uint32_t findIslands(ActorIndex actorIndex, void *scratch, const SupportGraph *graph)</div></div>
diff --git a/docs/source_docs/files/_nv_blast_fixed_array_8h_source.html b/docs/source_docs/files/_nv_blast_fixed_array_8h_source.html
index ff8cf6c..31c38d5 100755
--- a/docs/source_docs/files/_nv_blast_fixed_array_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_fixed_array_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_fixed_array_8h_source.html',
<div class="title">NvBlastFixedArray.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_fixed_array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDARRAY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDARRAY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html"> 64</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2"> 67</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2">FixedArray</a>() : m_size(0)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#af7b687252f5466a74006a27f2d3e7c54"> 71</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#af7b687252f5466a74006a27f2d3e7c54">requiredMemorySize</a>(uint32_t capacity)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;T&gt;</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(capacity * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a34a4a29c8d47adec39ae2df663470643"> 76</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a34a4a29c8d47adec39ae2df663470643">pushBack</a>(T&amp; t)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">new</span> (data() + m_size) T(t);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> data()[m_size++];</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a150702629729a0e29f8daece3b4419f4"> 82</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a150702629729a0e29f8daece3b4419f4">popBack</a>()</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_size);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; T t = data()[m_size - 1];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; data()[--m_size].~T();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> t;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a3f2d0ca6c66c48c6c5ca8ed83dd4bf07"> 90</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a3f2d0ca6c66c48c6c5ca8ed83dd4bf07">clear</a>()</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(T* first = data(); first &lt; data() + m_size; ++first)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; first-&gt;~T();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_size = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#aa90b247578afa3796325c721eb1d5037"> 97</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#aa90b247578afa3796325c721eb1d5037">forceSize_Unsafe</a>(uint32_t s)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_size = s;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a32ca75ccb174f910006c25f4ce5bcd87"> 102</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a32ca75ccb174f910006c25f4ce5bcd87">operator[]</a>(uint32_t idx)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a4efb701035f8fb07809a8b93f64db1dd"> 108</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a4efb701035f8fb07809a8b93f64db1dd">operator[]</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#ae932afd49acfc5f585a1238fd224931d"> 114</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#ae932afd49acfc5f585a1238fd224931d">at</a>(uint32_t idx)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a14d5caa7426392952bbfb343762a8ff3"> 120</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a14d5caa7426392952bbfb343762a8ff3">at</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a8af81ff38598a42137efccad9c65ead1"> 126</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a8af81ff38598a42137efccad9c65ead1">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> m_size;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t m_size;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T* data()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> (T*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;T&gt;</a>));</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2">FixedArray</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray</a>&amp; that);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDARRAY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_array_html_aab4aee079051ab98705ccbb4ed99d2f2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2">Nv::Blast::FixedArray::FixedArray</a></div><div class="ttdeci">FixedArray()</div><div class="ttdef"><b>Definition:</b> NvBlastFixedArray.h:67</div></div>
+<a href="_nv_blast_fixed_array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDARRAY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDARRAY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html"> 64</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2"> 67</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2">FixedArray</a>() : m_size(0)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#af7b687252f5466a74006a27f2d3e7c54"> 71</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#af7b687252f5466a74006a27f2d3e7c54">requiredMemorySize</a>(uint32_t capacity)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;T&gt;</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(capacity * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a34a4a29c8d47adec39ae2df663470643"> 76</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a34a4a29c8d47adec39ae2df663470643">pushBack</a>(T&amp; t)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">new</span> (data() + m_size) T(t);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> data()[m_size++];</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a150702629729a0e29f8daece3b4419f4"> 82</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a150702629729a0e29f8daece3b4419f4">popBack</a>()</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_size);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; T t = data()[m_size - 1];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; data()[--m_size].~T();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> t;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a3f2d0ca6c66c48c6c5ca8ed83dd4bf07"> 90</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a3f2d0ca6c66c48c6c5ca8ed83dd4bf07">clear</a>()</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(T* first = data(); first &lt; data() + m_size; ++first)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; first-&gt;~T();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_size = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#aa90b247578afa3796325c721eb1d5037"> 97</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#aa90b247578afa3796325c721eb1d5037">forceSize_Unsafe</a>(uint32_t s)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_size = s;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a32ca75ccb174f910006c25f4ce5bcd87"> 102</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a32ca75ccb174f910006c25f4ce5bcd87">operator[]</a>(uint32_t idx)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a4efb701035f8fb07809a8b93f64db1dd"> 108</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a4efb701035f8fb07809a8b93f64db1dd">operator[]</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#ae932afd49acfc5f585a1238fd224931d"> 114</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#ae932afd49acfc5f585a1238fd224931d">at</a>(uint32_t idx)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a14d5caa7426392952bbfb343762a8ff3"> 120</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> T&amp; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a14d5caa7426392952bbfb343762a8ff3">at</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(idx &lt; m_size);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> data()[idx];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_array.html#a8af81ff38598a42137efccad9c65ead1"> 126</a></span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#a8af81ff38598a42137efccad9c65ead1">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> m_size;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t m_size;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> T* data()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> (T*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray&lt;T&gt;</a>));</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2">FixedArray</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_array.html">FixedArray</a>&amp; that);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDARRAY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_array_html_aab4aee079051ab98705ccbb4ed99d2f2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_array.html#aab4aee079051ab98705ccbb4ed99d2f2">Nv::Blast::FixedArray::FixedArray</a></div><div class="ttdeci">FixedArray()</div><div class="ttdef"><b>Definition:</b> NvBlastFixedArray.h:67</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_array_html_aa90b247578afa3796325c721eb1d5037"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_array.html#aa90b247578afa3796325c721eb1d5037">Nv::Blast::FixedArray::forceSize_Unsafe</a></div><div class="ttdeci">NV_FORCE_INLINE void forceSize_Unsafe(uint32_t s)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedArray.h:97</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_array_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_array.html">Nv::Blast::FixedArray</a></div><div class="ttdef"><b>Definition:</b> NvBlastFixedArray.h:64</div></div>
<div class="ttc" id="_nv_blast_assert_8h_html_a2b179fca67cdb57b12b65e33fe3f6c93"><div class="ttname"><a href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a></div><div class="ttdeci">#define NVBLAST_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> NvBlastAssert.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_fixed_bitmap_8h_source.html b/docs/source_docs/files/_nv_blast_fixed_bitmap_8h_source.html
index 135e5e1..09052e6 100755
--- a/docs/source_docs/files/_nv_blast_fixed_bitmap_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_fixed_bitmap_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_fixed_bitmap_8h_source.html'
<div class="title">NvBlastFixedBitmap.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_fixed_bitmap_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDBITMAP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDBITMAP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aaf7ed00d6ece4806ee5d3c6c3b3dee5f"> 66</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aaf7ed00d6ece4806ee5d3c6c3b3dee5f">FixedBitmap</a>(uint32_t bitsCount)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_bitsCount = bitsCount;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836"> 71</a></span>&#160; <span class="keyword">static</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(uint32_t bitsCount)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> (bitsCount + 31) &gt;&gt; 5;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2955e031c60852ec6dd72ca6f8e73eb7"> 76</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2955e031c60852ec6dd72ca6f8e73eb7">requiredMemorySize</a>(uint32_t bitsCount)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(bitsCount) * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2a7209fa614fc173bbd7a8a10c856dff"> 81</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2a7209fa614fc173bbd7a8a10c856dff">clear</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; memset(data(), 0, <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(m_bitsCount) * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a010fe2685615fdb1da4153c7212e2c37"> 86</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a010fe2685615fdb1da4153c7212e2c37">fill</a>()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">const</span> uint32_t wordCount = <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(m_bitsCount);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; uint32_t* mem = data();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; memset(mem, 0xFF, wordCount * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> uint32_t bitsRemainder = m_bitsCount &amp; 31;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (bitsRemainder &gt; 0)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; mem[wordCount - 1] &amp;= ~(0xFFFFFFFF &lt;&lt; bitsRemainder);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a63ba5bb99867488fc3b302f9c5510c68"> 98</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a63ba5bb99867488fc3b302f9c5510c68">test</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_bitsCount);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> data()[index &gt;&gt; 5] &amp; (1 &lt;&lt; (index &amp; 31));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aa39e16f552918092f1e9fa289ddfb26c"> 104</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">set</span>(uint32_t index)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_bitsCount);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; data()[index &gt;&gt; 5] |= 1 &lt;&lt; (index &amp; 31);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aae323d2bddded4859cc3a0348bb72317"> 110</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aae323d2bddded4859cc3a0348bb72317">reset</a>(uint32_t index)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_bitsCount);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; data()[index &gt;&gt; 5] &amp;= ~(1 &lt;&lt; (index &amp; 31));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint32_t m_bitsCount;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t* data()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> (uint32_t*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> uint32_t* data()<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> (uint32_t*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aaf7ed00d6ece4806ee5d3c6c3b3dee5f">FixedBitmap</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>&amp; that);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDBITMAP_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bitmap_html_a2955e031c60852ec6dd72ca6f8e73eb7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2955e031c60852ec6dd72ca6f8e73eb7">Nv::Blast::FixedBitmap::requiredMemorySize</a></div><div class="ttdeci">static size_t requiredMemorySize(uint32_t bitsCount)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBitmap.h:76</div></div>
+<a href="_nv_blast_fixed_bitmap_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDBITMAP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDBITMAP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aaf7ed00d6ece4806ee5d3c6c3b3dee5f"> 66</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aaf7ed00d6ece4806ee5d3c6c3b3dee5f">FixedBitmap</a>(uint32_t bitsCount)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_bitsCount = bitsCount;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836"> 71</a></span>&#160; <span class="keyword">static</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(uint32_t bitsCount)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> (bitsCount + 31) &gt;&gt; 5;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2955e031c60852ec6dd72ca6f8e73eb7"> 76</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2955e031c60852ec6dd72ca6f8e73eb7">requiredMemorySize</a>(uint32_t bitsCount)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(bitsCount) * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2a7209fa614fc173bbd7a8a10c856dff"> 81</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2a7209fa614fc173bbd7a8a10c856dff">clear</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; memset(data(), 0, <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(m_bitsCount) * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a010fe2685615fdb1da4153c7212e2c37"> 86</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a010fe2685615fdb1da4153c7212e2c37">fill</a>()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">const</span> uint32_t wordCount = <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">getWordsCount</a>(m_bitsCount);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; uint32_t* mem = data();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; memset(mem, 0xFF, wordCount * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> uint32_t bitsRemainder = m_bitsCount &amp; 31;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (bitsRemainder &gt; 0)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; mem[wordCount - 1] &amp;= ~(0xFFFFFFFF &lt;&lt; bitsRemainder);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a63ba5bb99867488fc3b302f9c5510c68"> 98</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a63ba5bb99867488fc3b302f9c5510c68">test</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_bitsCount);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> data()[index &gt;&gt; 5] &amp; (1 &lt;&lt; (index &amp; 31));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aa39e16f552918092f1e9fa289ddfb26c"> 104</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">set</span>(uint32_t index)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_bitsCount);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; data()[index &gt;&gt; 5] |= 1 &lt;&lt; (index &amp; 31);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aae323d2bddded4859cc3a0348bb72317"> 110</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aae323d2bddded4859cc3a0348bb72317">reset</a>(uint32_t index)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_bitsCount);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; data()[index &gt;&gt; 5] &amp;= ~(1 &lt;&lt; (index &amp; 31));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint32_t m_bitsCount;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t* data()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> (uint32_t*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> uint32_t* data()<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> (uint32_t*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aaf7ed00d6ece4806ee5d3c6c3b3dee5f">FixedBitmap</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bitmap.html">FixedBitmap</a>&amp; that);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDBITMAP_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bitmap_html_a2955e031c60852ec6dd72ca6f8e73eb7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a2955e031c60852ec6dd72ca6f8e73eb7">Nv::Blast::FixedBitmap::requiredMemorySize</a></div><div class="ttdeci">static size_t requiredMemorySize(uint32_t bitsCount)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBitmap.h:76</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bitmap_html_ac537f9169713e8915d95b300ed690836"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bitmap.html#ac537f9169713e8915d95b300ed690836">Nv::Blast::FixedBitmap::getWordsCount</a></div><div class="ttdeci">static uint32_t getWordsCount(uint32_t bitsCount)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBitmap.h:71</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bitmap_html_a63ba5bb99867488fc3b302f9c5510c68"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bitmap.html#a63ba5bb99867488fc3b302f9c5510c68">Nv::Blast::FixedBitmap::test</a></div><div class="ttdeci">int test(uint32_t index) const</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBitmap.h:98</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bitmap_html_aae323d2bddded4859cc3a0348bb72317"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bitmap.html#aae323d2bddded4859cc3a0348bb72317">Nv::Blast::FixedBitmap::reset</a></div><div class="ttdeci">void reset(uint32_t index)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBitmap.h:110</div></div>
diff --git a/docs/source_docs/files/_nv_blast_fixed_bool_array_8h_source.html b/docs/source_docs/files/_nv_blast_fixed_bool_array_8h_source.html
index ac86404..a31d5bc 100755
--- a/docs/source_docs/files/_nv_blast_fixed_bool_array_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_fixed_bool_array_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_fixed_bool_array_8h_source.h
<div class="title">NvBlastFixedBoolArray.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_fixed_bool_array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDBOOLARRAY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDBOOLARRAY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622"> 66</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622">FixedBoolArray</a>(uint32_t size)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_size = size;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344"> 71</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344">requiredMemorySize</a>(uint32_t size)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(size);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aead1a010fb21c450ece0345ba36879fa"> 76</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aead1a010fb21c450ece0345ba36879fa">clear</a>()</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; memset(data(), 0, m_size);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a3dd3e3b6dda80554dcc2137d9974751d"> 81</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a3dd3e3b6dda80554dcc2137d9974751d">fill</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; memset(data(), 1, m_size);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a4ea7f9b26a7feed57a1db8bfc03e4dff"> 86</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a4ea7f9b26a7feed57a1db8bfc03e4dff">test</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_size);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> data()[index];</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a8e1aeb344b1214ec88bf78f739b4a559"> 92</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">set</span>(uint32_t index)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_size);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; data()[index] = 1;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a09c82c9bb97e55beb2ab376fcb0d63e2"> 98</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a09c82c9bb97e55beb2ab376fcb0d63e2">reset</a>(uint32_t index)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_size);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; data()[index] = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; uint32_t m_size;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keywordtype">char</span>* data()</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* data()<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>));</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622">FixedBoolArray</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>&amp; that);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;};</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDBOOLARRAY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html">Nv::Blast::FixedBoolArray</a></div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:63</div></div>
+<a href="_nv_blast_fixed_bool_array_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDBOOLARRAY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDBOOLARRAY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622"> 66</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622">FixedBoolArray</a>(uint32_t size)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_size = size;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344"> 71</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344">requiredMemorySize</a>(uint32_t size)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(size);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aead1a010fb21c450ece0345ba36879fa"> 76</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aead1a010fb21c450ece0345ba36879fa">clear</a>()</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; memset(data(), 0, m_size);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a3dd3e3b6dda80554dcc2137d9974751d"> 81</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a3dd3e3b6dda80554dcc2137d9974751d">fill</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; memset(data(), 1, m_size);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a4ea7f9b26a7feed57a1db8bfc03e4dff"> 86</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a4ea7f9b26a7feed57a1db8bfc03e4dff">test</a>(uint32_t index)<span class="keyword"> const</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_size);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> data()[index];</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a8e1aeb344b1214ec88bf78f739b4a559"> 92</a></span>&#160; <span class="keywordtype">void</span> <span class="keyword">set</span>(uint32_t index)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_size);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; data()[index] = 1;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a09c82c9bb97e55beb2ab376fcb0d63e2"> 98</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a09c82c9bb97e55beb2ab376fcb0d63e2">reset</a>(uint32_t index)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_size);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; data()[index] = 0;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; uint32_t m_size;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keywordtype">char</span>* data()</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* data()<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>));</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622">FixedBoolArray</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_bool_array.html">FixedBoolArray</a>&amp; that);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;};</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDBOOLARRAY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html">Nv::Blast::FixedBoolArray</a></div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:63</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html_a4ea7f9b26a7feed57a1db8bfc03e4dff"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a4ea7f9b26a7feed57a1db8bfc03e4dff">Nv::Blast::FixedBoolArray::test</a></div><div class="ttdeci">int test(uint32_t index) const</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:86</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html_a2e54d889866dc43d9e863d45e4450344"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html#a2e54d889866dc43d9e863d45e4450344">Nv::Blast::FixedBoolArray::requiredMemorySize</a></div><div class="ttdeci">static size_t requiredMemorySize(uint32_t size)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:71</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_bool_array_html_aec2fbcfaa2de45959831ebd39a7e6622"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_bool_array.html#aec2fbcfaa2de45959831ebd39a7e6622">Nv::Blast::FixedBoolArray::FixedBoolArray</a></div><div class="ttdeci">FixedBoolArray(uint32_t size)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedBoolArray.h:66</div></div>
diff --git a/docs/source_docs/files/_nv_blast_fixed_priority_queue_8h_source.html b/docs/source_docs/files/_nv_blast_fixed_priority_queue_8h_source.html
index 959e053..1aaffaf 100755
--- a/docs/source_docs/files/_nv_blast_fixed_priority_queue_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_fixed_priority_queue_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_fixed_priority_queue_8h_sour
<div class="title">NvBlastFixedPriorityQueue.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_fixed_priority_queue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDPRIORITYQUEUE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDPRIORITYQUEUE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> A&gt;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_less.html"> 63</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_less.html">Less</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_less.html#af453636e02446e5b2a37289755c431d6"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_less.html#af453636e02446e5b2a37289755c431d6">operator()</a>(<span class="keyword">const</span> A&amp; a, <span class="keyword">const</span> A&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> a &lt; b;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> Element, <span class="keyword">class</span> Comparator = Less&lt;Element&gt; &gt;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html"> 73</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue</a> : <span class="keyword">protected</span> Comparator <span class="comment">// inherit so that stateless comparators take no space</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#afac0be73b5f4e3018871c2bfdde6fb28"> 76</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#afac0be73b5f4e3018871c2bfdde6fb28">FixedPriorityQueue</a>(<span class="keyword">const</span> Comparator&amp; less = Comparator()) : Comparator(less), mHeapSize(0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a98f870b4b97264985577689aee68bb59"> 80</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a98f870b4b97264985577689aee68bb59">~FixedPriorityQueue</a>()</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#abbab600f8c667462ee6454db90d1da38"> 84</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#abbab600f8c667462ee6454db90d1da38">requiredMemorySize</a>(uint32_t capacity)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(capacity * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a1d7c1b2ff9fba34e09bb22773a3bf340"> 90</a></span>&#160; <span class="keyword">const</span> Element <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a1d7c1b2ff9fba34e09bb22773a3bf340">top</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> data()[0];</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa"> 96</a></span>&#160; Element <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa">top</a>()</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> data()[0];</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#adb32be852add255f27fc62e81665c58c"> 102</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#adb32be852add255f27fc62e81665c58c">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> (mHeapSize == 0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652"> 108</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652">clear</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; mHeapSize = 0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#aef62e4bf465c5a8e77a3a4937456f8d2"> 114</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#aef62e4bf465c5a8e77a3a4937456f8d2">push</a>(<span class="keyword">const</span> Element&amp; value)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t newIndex;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint32_t parentIndex = parent(mHeapSize);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span> (newIndex = mHeapSize; newIndex &gt; 0 &amp;&amp; compare(value, data()[parentIndex]); newIndex = parentIndex, parentIndex= parent(newIndex)) </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; data()[ newIndex ] = data()[parentIndex];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; data()[newIndex] = value; </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; mHeapSize++;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(valid());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a2a11aad2baa3b807fb420372914e9cd6"> 129</a></span>&#160; Element <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a2a11aad2baa3b807fb420372914e9cd6">pop</a>()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(mHeapSize &gt; 0);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t i, child;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">//try to avoid LHS</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint32_t tempHs = mHeapSize-1;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; mHeapSize = tempHs;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; Element min = data()[0];</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; Element last = data()[tempHs];</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span> (i = 0; (child = left(i)) &lt; tempHs; i = child) </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">/* Find highest priority child */</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> uint32_t rightChild = child + 1;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; child += ((rightChild &lt; tempHs) &amp; compare((data()[rightChild]), (data()[child]))) ? 1 : 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(compare(last, data()[child]))</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; data()[i] = data()[child];</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; data()[ i ] = last;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(valid());</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> min;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a3bcc1a697941a5d66ddfafc7a2e5af4d"> 158</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a3bcc1a697941a5d66ddfafc7a2e5af4d">valid</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> Element&amp; min = data()[0];</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span>(uint32_t i=1; i&lt;mHeapSize; ++i)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(compare(data()[i], min))</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a844a4e0b003af40f2af784796639a455"> 171</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a844a4e0b003af40f2af784796639a455">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> mHeapSize;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint32_t mHeapSize;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> Element* data()</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> (Element*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>));</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> Element* data()<span class="keyword"> const</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> (Element*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>));</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">bool</span> compare(<span class="keyword">const</span> Element&amp; a, <span class="keyword">const</span> Element&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> Comparator::operator()(a,b);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">static</span> uint32_t left(uint32_t nodeIndex) </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> (nodeIndex &lt;&lt; 1) + 1;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">static</span> uint32_t parent(uint32_t nodeIndex) </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> (nodeIndex - 1) &gt;&gt; 1;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>&amp; operator = (<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;};</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDPRIORITYQUEUE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_priority_queue_html_a9ba647089df9693a0a565dd8628cdefa"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa">Nv::Blast::FixedPriorityQueue::top</a></div><div class="ttdeci">Element top()</div><div class="ttdoc">Get the element with the highest priority. </div><div class="ttdef"><b>Definition:</b> NvBlastFixedPriorityQueue.h:96</div></div>
+<a href="_nv_blast_fixed_priority_queue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDPRIORITYQUEUE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDPRIORITYQUEUE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> A&gt;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_less.html"> 63</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_less.html">Less</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_less.html#af453636e02446e5b2a37289755c431d6"> 65</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_less.html#af453636e02446e5b2a37289755c431d6">operator()</a>(<span class="keyword">const</span> A&amp; a, <span class="keyword">const</span> A&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> a &lt; b;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> Element, <span class="keyword">class</span> Comparator = Less&lt;Element&gt; &gt;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html"> 73</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue</a> : <span class="keyword">protected</span> Comparator <span class="comment">// inherit so that stateless comparators take no space</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#afac0be73b5f4e3018871c2bfdde6fb28"> 76</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#afac0be73b5f4e3018871c2bfdde6fb28">FixedPriorityQueue</a>(<span class="keyword">const</span> Comparator&amp; less = Comparator()) : Comparator(less), mHeapSize(0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a98f870b4b97264985577689aee68bb59"> 80</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a98f870b4b97264985577689aee68bb59">~FixedPriorityQueue</a>()</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#abbab600f8c667462ee6454db90d1da38"> 84</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#abbab600f8c667462ee6454db90d1da38">requiredMemorySize</a>(uint32_t capacity)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(capacity * <span class="keyword">sizeof</span>(Element));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a1d7c1b2ff9fba34e09bb22773a3bf340"> 90</a></span>&#160; <span class="keyword">const</span> Element <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a1d7c1b2ff9fba34e09bb22773a3bf340">top</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> data()[0];</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa"> 96</a></span>&#160; Element <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa">top</a>()</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> data()[0];</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#adb32be852add255f27fc62e81665c58c"> 102</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#adb32be852add255f27fc62e81665c58c">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> (mHeapSize == 0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652"> 108</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652">clear</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; mHeapSize = 0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#aef62e4bf465c5a8e77a3a4937456f8d2"> 114</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#aef62e4bf465c5a8e77a3a4937456f8d2">push</a>(<span class="keyword">const</span> Element&amp; value)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; uint32_t newIndex;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint32_t parentIndex = parent(mHeapSize);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span> (newIndex = mHeapSize; newIndex &gt; 0 &amp;&amp; compare(value, data()[parentIndex]); newIndex = parentIndex, parentIndex= parent(newIndex)) </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; data()[ newIndex ] = data()[parentIndex];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; data()[newIndex] = value; </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; mHeapSize++;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(valid());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a2a11aad2baa3b807fb420372914e9cd6"> 129</a></span>&#160; Element <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a2a11aad2baa3b807fb420372914e9cd6">pop</a>()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(mHeapSize &gt; 0);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint32_t i, child;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">//try to avoid LHS</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint32_t tempHs = mHeapSize-1;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; mHeapSize = tempHs;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; Element min = data()[0];</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; Element last = data()[tempHs];</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span> (i = 0; (child = left(i)) &lt; tempHs; i = child) </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">/* Find highest priority child */</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> uint32_t rightChild = child + 1;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; child += ((rightChild &lt; tempHs) &amp; compare((data()[rightChild]), (data()[child]))) ? 1 : 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(compare(last, data()[child]))</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; data()[i] = data()[child];</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; data()[ i ] = last;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(valid());</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> min;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a3bcc1a697941a5d66ddfafc7a2e5af4d"> 158</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a3bcc1a697941a5d66ddfafc7a2e5af4d">valid</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> Element&amp; min = data()[0];</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span>(uint32_t i=1; i&lt;mHeapSize; ++i)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(compare(data()[i], min))</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a844a4e0b003af40f2af784796639a455"> 171</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a844a4e0b003af40f2af784796639a455">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> mHeapSize;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint32_t mHeapSize;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> Element* data()</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> (Element*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>));</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> Element* data()<span class="keyword"> const</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> (Element*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>));</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">bool</span> compare(<span class="keyword">const</span> Element&amp; a, <span class="keyword">const</span> Element&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> Comparator::operator()(a,b);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">static</span> uint32_t left(uint32_t nodeIndex) </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> (nodeIndex &lt;&lt; 1) + 1;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">static</span> uint32_t parent(uint32_t nodeIndex) </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> (nodeIndex - 1) &gt;&gt; 1;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>&amp; operator = (<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">FixedPriorityQueue&lt;Element, Comparator&gt;</a>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;};</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDPRIORITYQUEUE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_priority_queue_html_a9ba647089df9693a0a565dd8628cdefa"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa">Nv::Blast::FixedPriorityQueue::top</a></div><div class="ttdeci">Element top()</div><div class="ttdoc">Get the element with the highest priority. </div><div class="ttdef"><b>Definition:</b> NvBlastFixedPriorityQueue.h:96</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_priority_queue_html_aef62e4bf465c5a8e77a3a4937456f8d2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#aef62e4bf465c5a8e77a3a4937456f8d2">Nv::Blast::FixedPriorityQueue::push</a></div><div class="ttdeci">void push(const Element &amp;value)</div><div class="ttdoc">Insert a new element into the priority queue. Only valid when size() is less than Capacity...</div><div class="ttdef"><b>Definition:</b> NvBlastFixedPriorityQueue.h:114</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_priority_queue_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_priority_queue.html">Nv::Blast::FixedPriorityQueue</a></div><div class="ttdef"><b>Definition:</b> NvBlastFixedPriorityQueue.h:73</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_priority_queue_html_a7127664503056837ccaf338909e59652"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652">Nv::Blast::FixedPriorityQueue::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Empty the priority queue. </div><div class="ttdef"><b>Definition:</b> NvBlastFixedPriorityQueue.h:108</div></div>
diff --git a/docs/source_docs/files/_nv_blast_fixed_queue_8h_source.html b/docs/source_docs/files/_nv_blast_fixed_queue_8h_source.html
index 0988702..9fd5741 100755
--- a/docs/source_docs/files/_nv_blast_fixed_queue_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_fixed_queue_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_fixed_queue_8h_source.html',
<div class="title">NvBlastFixedQueue.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_fixed_queue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDQUEUE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDQUEUE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6"> 58</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6">FixedQueue</a>(uint32_t maxEntries) : m_num(0), m_head(0), m_tail(0), m_maxEntries(maxEntries)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a81eae2188bc447256c7a4df3180e1001"> 62</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a81eae2188bc447256c7a4df3180e1001">requiredMemorySize</a>(uint32_t capacity)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue&lt;T&gt;</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(capacity * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a35267203a20585ed9a5b08b7dcb91556"> 67</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a35267203a20585ed9a5b08b7dcb91556">popFront</a>()</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_num--;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; T&amp; element = data()[m_tail];</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_tail = (m_tail+1) % (m_maxEntries);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> element;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a54bd68e5fe00a2b6f5135e96940a3d7c"> 77</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a54bd68e5fe00a2b6f5135e96940a3d7c">front</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> data()[m_tail];</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#ab37c7f73de151865ee0cef47ac92935c"> 84</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#ab37c7f73de151865ee0cef47ac92935c">popBack</a>()</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_num--;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_head = (m_head-1) % (m_maxEntries);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> data()[m_head];</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#aa8645abdbfec5f146a87d20eb7061000"> 93</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#aa8645abdbfec5f146a87d20eb7061000">back</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint32_t headAccess = (m_head-1) % (m_maxEntries);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> data()[headAccess];</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a7b0cb35624994968155185acd732e643"> 101</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a7b0cb35624994968155185acd732e643">pushBack</a>(<span class="keyword">const</span> T&amp; element)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (m_num == m_maxEntries) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; data()[m_head] = element;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_num++;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_head = (m_head+1) % (m_maxEntries);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a6be28e2478e69c2d7a61dedd609e0f19"> 112</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a6be28e2478e69c2d7a61dedd609e0f19">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> m_num == 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#ac97299d08b6b20c8851acc0bcd0e0905"> 117</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#ac97299d08b6b20c8851acc0bcd0e0905">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> m_num;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; } </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; uint32_t m_num;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t m_head;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; uint32_t m_tail;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t m_maxEntries;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; T* data()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> (T*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue&lt;T&gt;</a>));</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6">FixedQueue</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue</a>&amp; that);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDQUEUE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_queue_html_a6be28e2478e69c2d7a61dedd609e0f19"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_queue.html#a6be28e2478e69c2d7a61dedd609e0f19">Nv::Blast::FixedQueue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> NvBlastFixedQueue.h:112</div></div>
+<a href="_nv_blast_fixed_queue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTFIXEDQUEUE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTFIXEDQUEUE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6"> 58</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6">FixedQueue</a>(uint32_t maxEntries) : m_num(0), m_head(0), m_tail(0), m_maxEntries(maxEntries)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a81eae2188bc447256c7a4df3180e1001"> 62</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a81eae2188bc447256c7a4df3180e1001">requiredMemorySize</a>(uint32_t capacity)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(<span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue&lt;T&gt;</a>)) + <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(capacity * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a35267203a20585ed9a5b08b7dcb91556"> 67</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a35267203a20585ed9a5b08b7dcb91556">popFront</a>()</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_num--;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; T&amp; element = data()[m_tail];</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_tail = (m_tail+1) % (m_maxEntries);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> element;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a54bd68e5fe00a2b6f5135e96940a3d7c"> 77</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a54bd68e5fe00a2b6f5135e96940a3d7c">front</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> data()[m_tail];</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#ab37c7f73de151865ee0cef47ac92935c"> 84</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#ab37c7f73de151865ee0cef47ac92935c">popBack</a>()</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_num--;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_head = (m_head-1) % (m_maxEntries);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> data()[m_head];</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#aa8645abdbfec5f146a87d20eb7061000"> 93</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#aa8645abdbfec5f146a87d20eb7061000">back</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_num&gt;0);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint32_t headAccess = (m_head-1) % (m_maxEntries);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> data()[headAccess];</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a7b0cb35624994968155185acd732e643"> 101</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a7b0cb35624994968155185acd732e643">pushBack</a>(<span class="keyword">const</span> T&amp; element)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (m_num == m_maxEntries) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; data()[m_head] = element;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_num++;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_head = (m_head+1) % (m_maxEntries);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#a6be28e2478e69c2d7a61dedd609e0f19"> 112</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a6be28e2478e69c2d7a61dedd609e0f19">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> m_num == 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fixed_queue.html#ac97299d08b6b20c8851acc0bcd0e0905"> 117</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#ac97299d08b6b20c8851acc0bcd0e0905">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> m_num;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; } </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; uint32_t m_num;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t m_head;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; uint32_t m_tail;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t m_maxEntries;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; T* data()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> (T*)((<span class="keywordtype">char</span>*)<span class="keyword">this</span> + <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue&lt;T&gt;</a>));</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6">FixedQueue</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_fixed_queue.html">FixedQueue</a>&amp; that);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTFIXEDQUEUE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_fixed_queue_html_a6be28e2478e69c2d7a61dedd609e0f19"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_queue.html#a6be28e2478e69c2d7a61dedd609e0f19">Nv::Blast::FixedQueue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> NvBlastFixedQueue.h:112</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_queue_html_a12feba21bdf02ee2bea2e9e0e5910bf6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_queue.html#a12feba21bdf02ee2bea2e9e0e5910bf6">Nv::Blast::FixedQueue::FixedQueue</a></div><div class="ttdeci">FixedQueue(uint32_t maxEntries)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedQueue.h:58</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_fixed_queue_html_a7b0cb35624994968155185acd732e643"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fixed_queue.html#a7b0cb35624994968155185acd732e643">Nv::Blast::FixedQueue::pushBack</a></div><div class="ttdeci">bool pushBack(const T &amp;element)</div><div class="ttdef"><b>Definition:</b> NvBlastFixedQueue.h:101</div></div>
<div class="ttc" id="_nv_blast_assert_8h_html_a2b179fca67cdb57b12b65e33fe3f6c93"><div class="ttname"><a href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a></div><div class="ttdeci">#define NVBLAST_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> NvBlastAssert.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_geometry_8h_source.html b/docs/source_docs/files/_nv_blast_geometry_8h_source.html
index c2deb13..5fcb00e 100755
--- a/docs/source_docs/files/_nv_blast_geometry_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_geometry_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_geometry_8h_source.html','')
<div class="title">NvBlastGeometry.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_geometry_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTGEOMETRY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTGEOMETRY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_math_8h.html">NvBlastMath.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a174a03926806454cd726b130462606b0"> 62</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a174a03926806454cd726b130462606b0">findClosestNode</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> point[4], </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">const</span> uint32_t firstGraphNodeIndex, <span class="keyword">const</span> uint32_t* familyGraphNodeIndexLinks,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> uint32_t* adjacencyPartition, <span class="keyword">const</span> uint32_t* adjacentNodeIndices, <span class="keyword">const</span> uint32_t* adjacentBondIndices,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* assetBonds, <span class="keyword">const</span> <span class="keywordtype">float</span>* bondHealths,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* assetChunks, <span class="keyword">const</span> <span class="keywordtype">float</span>* supportChunkHealths, <span class="keyword">const</span> uint32_t* chunkIndices)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// firstGraphNodeIndex could still be the world chunk, however</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// there should be no way a single-node actor that is just the world chunk exists.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; uint32_t nodeIndex = firstGraphNodeIndex;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Since there should always be a regular chunk in the graph, it is possible to initialize closestNode</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// as world chunk index but it would always evaluate to some meaningful node index eventually.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; uint32_t closestNode = nodeIndex;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">float</span> minDist = std::numeric_limits&lt;float&gt;().max();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// find the closest healthy chunk in the graph by its centroid to point distance</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">Nv::Blast::isInvalidIndex</a>(nodeIndex))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (supportChunkHealths[nodeIndex] &gt; 0.0f)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint32_t chunkIndex = chunkIndices[nodeIndex];</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndex)) <span class="comment">// Invalid if this is the world chunk</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = assetChunks[chunkIndex];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* centroid = chunk.<a class="code" href="struct_nv_blast_chunk.html#a3c8c4522d0fdde5d38f59509aa2333d2">centroid</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">float</span> d[3]; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">VecMath::sub</a>(point, centroid, d);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a> = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, d);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span> (dist &lt; minDist)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; minDist = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; closestNode = nodeIndex;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; nodeIndex = familyGraphNodeIndexLinks[nodeIndex];</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// as long as the world chunk is not input as a single-node graph actor</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[closestNode]));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">bool</span> iterateOnBonds = <span class="keyword">true</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (iterateOnBonds)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// improve geometric accuracy by looking on which side of the closest bond the point lies</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// expects bond normals to point from the smaller to the larger node index</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; nodeIndex = closestNode;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; minDist = std::numeric_limits&lt;float&gt;().max();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> uint32_t startIndex = adjacencyPartition[nodeIndex];</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span> (uint32_t adjacentIndex = startIndex; adjacentIndex &lt; stopIndex; adjacentIndex++)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">const</span> uint32_t neighbourChunk = chunkIndices[neighbourIndex];</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(neighbourChunk)) <span class="comment">// Invalid if neighbor is the world chunk</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> uint32_t bondIndex = adjacentBondIndices[adjacentIndex];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// do not follow broken bonds, since it means that neighbor is not actually connected in the graph</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (bondHealths[bondIndex] &gt; 0.0f &amp;&amp; supportChunkHealths[neighbourIndex] &gt; 0.0f)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; bond = assetBonds[bondIndex];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* centroid = bond.<a class="code" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6">centroid</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">float</span> d[3]; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">VecMath::sub</a>(point, centroid, d);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a> = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, d);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (dist &lt; minDist)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; minDist = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">float</span> s = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, bond.<a class="code" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d">normal</a>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (nodeIndex &lt; neighbourIndex)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; closestNode = s &lt; 0.0f ? nodeIndex : neighbourIndex;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; closestNode = s &lt; 0.0f ? neighbourIndex : nodeIndex;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> closestNode;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a0ce4dc5d3f1f248d05a6b699ccaa68b9"> 171</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a174a03926806454cd726b130462606b0">findClosestNode</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> point[4],</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">const</span> uint32_t firstGraphNodeIndex, <span class="keyword">const</span> uint32_t* familyGraphNodeIndexLinks,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> uint32_t* adjacencyPartition, <span class="keyword">const</span> uint32_t* adjacentNodeIndices, <span class="keyword">const</span> uint32_t* adjacentBondIndices,</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* bonds, <span class="keyword">const</span> <span class="keywordtype">float</span>* bondHealths, <span class="keyword">const</span> uint32_t* chunkIndices)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// firstGraphNodeIndex could still be the world chunk, however</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// there should be no way a single-node actor that is just the world chunk exists.</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint32_t nodeIndex = firstGraphNodeIndex;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// Since there should always be a regular chunk in the graph, it is possible to initialize closestNode</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// as world chunk index but it would always evaluate to some meaningful node index eventually.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint32_t closestNode = nodeIndex;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">float</span> minDist = std::numeric_limits&lt;float&gt;().max();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">Nv::Blast::isInvalidIndex</a>(nodeIndex))</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> uint32_t startIndex = adjacencyPartition[nodeIndex];</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">const</span> uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (uint32_t adjacentIndex = startIndex; adjacentIndex &lt; stopIndex; adjacentIndex++)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (nodeIndex &lt; neighbourIndex)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">const</span> uint32_t bondIndex = adjacentBondIndices[adjacentIndex];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (bondHealths[bondIndex] &gt; 0.0f)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; bond = bonds[bondIndex];</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* centroid = bond.<a class="code" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6">centroid</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">float</span> d[3]; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">VecMath::sub</a>(point, centroid, d);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a> = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, d);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (dist &lt; minDist)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; minDist = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// if any of the nodes is the world chunk, use the valid one instead</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[neighbourIndex]))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; closestNode = nodeIndex;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[nodeIndex]))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; closestNode = neighbourIndex;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">float</span> s = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, bond.<a class="code" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d">normal</a>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; closestNode = s &lt; 0 ? nodeIndex : neighbourIndex;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; nodeIndex = familyGraphNodeIndexLinks[nodeIndex];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// as long as the world chunk is not input as a single-node graph actor</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[closestNode]));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> closestNode;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif // NVBLASTGEOMETRY_H</span></div><div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
+<a href="_nv_blast_geometry_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTGEOMETRY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTGEOMETRY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_math_8h.html">NvBlastMath.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a174a03926806454cd726b130462606b0"> 62</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a174a03926806454cd726b130462606b0">findClosestNode</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> point[4], </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">const</span> uint32_t firstGraphNodeIndex, <span class="keyword">const</span> uint32_t* familyGraphNodeIndexLinks,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> uint32_t* adjacencyPartition, <span class="keyword">const</span> uint32_t* adjacentNodeIndices, <span class="keyword">const</span> uint32_t* adjacentBondIndices,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* assetBonds, <span class="keyword">const</span> <span class="keywordtype">float</span>* bondHealths,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* assetChunks, <span class="keyword">const</span> <span class="keywordtype">float</span>* supportChunkHealths, <span class="keyword">const</span> uint32_t* chunkIndices)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// firstGraphNodeIndex could still be the world chunk, however</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// there should be no way a single-node actor that is just the world chunk exists.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; uint32_t nodeIndex = firstGraphNodeIndex;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Since there should always be a regular chunk in the graph, it is possible to initialize closestNode</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// as world chunk index but it would always evaluate to some meaningful node index eventually.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; uint32_t closestNode = nodeIndex;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">float</span> minDist = std::numeric_limits&lt;float&gt;().max();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// find the closest healthy chunk in the graph by its centroid to point distance</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">Nv::Blast::isInvalidIndex</a>(nodeIndex))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (supportChunkHealths[nodeIndex] &gt; 0.0f)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint32_t chunkIndex = chunkIndices[nodeIndex];</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndex)) <span class="comment">// Invalid if this is the world chunk</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>&amp; chunk = assetChunks[chunkIndex];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* centroid = chunk.<a class="code" href="struct_nv_blast_chunk.html#a3c8c4522d0fdde5d38f59509aa2333d2">centroid</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">float</span> d[3]; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">VecMath::sub</a>(point, centroid, d);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a> = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, d);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span> (dist &lt; minDist)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; minDist = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; closestNode = nodeIndex;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; nodeIndex = familyGraphNodeIndexLinks[nodeIndex];</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// as long as the world chunk is not input as a single-node graph actor</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[closestNode]));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">bool</span> iterateOnBonds = <span class="keyword">true</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (iterateOnBonds)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// improve geometric accuracy by looking on which side of the closest bond the point lies</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// expects bond normals to point from the smaller to the larger node index</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; nodeIndex = closestNode;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; minDist = std::numeric_limits&lt;float&gt;().max();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> uint32_t startIndex = adjacencyPartition[nodeIndex];</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span> (uint32_t adjacentIndex = startIndex; adjacentIndex &lt; stopIndex; adjacentIndex++)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">const</span> uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">const</span> uint32_t neighbourChunk = chunkIndices[neighbourIndex];</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(neighbourChunk)) <span class="comment">// Invalid if neighbor is the world chunk</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> uint32_t bondIndex = adjacentBondIndices[adjacentIndex];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// do not follow broken bonds, since it means that neighbor is not actually connected in the graph</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (bondHealths[bondIndex] &gt; 0.0f &amp;&amp; supportChunkHealths[neighbourIndex] &gt; 0.0f)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; bond = assetBonds[bondIndex];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* centroid = bond.<a class="code" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6">centroid</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">float</span> d[3]; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">VecMath::sub</a>(point, centroid, d);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a> = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, d);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (dist &lt; minDist)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; minDist = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">float</span> s = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, bond.<a class="code" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d">normal</a>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (nodeIndex &lt; neighbourIndex)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; closestNode = s &lt; 0.0f ? nodeIndex : neighbourIndex;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; closestNode = s &lt; 0.0f ? neighbourIndex : nodeIndex;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> closestNode;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a0ce4dc5d3f1f248d05a6b699ccaa68b9"> 171</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> uint32_t <a class="code" href="namespace_nv_1_1_blast.html#a174a03926806454cd726b130462606b0">findClosestNode</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> point[4],</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">const</span> uint32_t firstGraphNodeIndex, <span class="keyword">const</span> uint32_t* familyGraphNodeIndexLinks,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> uint32_t* adjacencyPartition, <span class="keyword">const</span> uint32_t* adjacentNodeIndices, <span class="keyword">const</span> uint32_t* adjacentBondIndices,</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* bonds, <span class="keyword">const</span> <span class="keywordtype">float</span>* bondHealths, <span class="keyword">const</span> uint32_t* chunkIndices)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// firstGraphNodeIndex could still be the world chunk, however</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// there should be no way a single-node actor that is just the world chunk exists.</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; uint32_t nodeIndex = firstGraphNodeIndex;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// Since there should always be a regular chunk in the graph, it is possible to initialize closestNode</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// as world chunk index but it would always evaluate to some meaningful node index eventually.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint32_t closestNode = nodeIndex;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">float</span> minDist = std::numeric_limits&lt;float&gt;().max();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">Nv::Blast::isInvalidIndex</a>(nodeIndex))</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> uint32_t startIndex = adjacencyPartition[nodeIndex];</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">const</span> uint32_t stopIndex = adjacencyPartition[nodeIndex + 1];</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (uint32_t adjacentIndex = startIndex; adjacentIndex &lt; stopIndex; adjacentIndex++)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> uint32_t neighbourIndex = adjacentNodeIndices[adjacentIndex];</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (nodeIndex &lt; neighbourIndex)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">const</span> uint32_t bondIndex = adjacentBondIndices[adjacentIndex];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (bondHealths[bondIndex] &gt; 0.0f)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>&amp; bond = bonds[bondIndex];</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* centroid = bond.<a class="code" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6">centroid</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">float</span> d[3]; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">VecMath::sub</a>(point, centroid, d);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a> = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, d);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (dist &lt; minDist)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; minDist = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// if any of the nodes is the world chunk, use the valid one instead</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[neighbourIndex]))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; closestNode = nodeIndex;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[nodeIndex]))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; closestNode = neighbourIndex;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">float</span> s = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">VecMath::dot</a>(d, bond.<a class="code" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d">normal</a>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; closestNode = s &lt; 0 ? nodeIndex : neighbourIndex;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; nodeIndex = familyGraphNodeIndexLinks[nodeIndex];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// as long as the world chunk is not input as a single-node graph actor</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(chunkIndices[closestNode]));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> closestNode;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif // NVBLASTGEOMETRY_H</span></div><div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a977e74623adf1a08686f4dc5a6f241bc"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">Nv::Blast::VecMath::dist</a></div><div class="ttdeci">NV_INLINE float dist(const float a[3], const float b[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:86</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="_nv_blast_math_8h_html"><div class="ttname"><a href="_nv_blast_math_8h.html">NvBlastMath.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_globals_8h_source.html b/docs/source_docs/files/_nv_blast_globals_8h_source.html
index 6473685..5c8a46f 100755
--- a/docs/source_docs/files/_nv_blast_globals_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_globals_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_globals_8h_source.html','');
<div class="title">NvBlastGlobals.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_globals_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;new&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">AllocatorCallback</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406"> 51</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406">~AllocatorCallback</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(<span class="keywordtype">void</span>* ptr) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_error_code.html">ErrorCode</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab"> 90</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Enum</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b"> 92</a></span>&#160; eNO_ERROR = 0,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba"> 95</a></span>&#160; eDEBUG_INFO = 1,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77"> 98</a></span>&#160; eDEBUG_WARNING = 2,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaec8c84e7ac93ddce73241014c574c771"> 101</a></span>&#160; eINVALID_PARAMETER = 4,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6"> 104</a></span>&#160; eINVALID_OPERATION = 8,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba963775dfd66699f8f657b0d70935eb1e"> 107</a></span>&#160; eOUT_OF_MEMORY = 16,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba019ab0e8fa80ab359838e3afa6bedd7a"> 112</a></span>&#160; eINTERNAL_ERROR = 32,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ababdc867619281f022cc360e8e9964cecb"> 115</a></span>&#160; eABORT = 64,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba8bde8ff474e2a74ccb5de49c316c313a"> 118</a></span>&#160; ePERF_WARNING = 128,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba3161b74e1d5767417c6b3dac7c05f6fe"> 121</a></span>&#160; eMASK_ALL = -1</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;};</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html"> 131</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">ErrorCallback</a></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0"> 134</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0">~ErrorCallback</a>()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a7295934a3be432864d0813dd25e1c2f6">NvBlastGlobalSetAllocatorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* allocatorCallback);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#a8a2db85363a6de25ef3b1c7576cf5870">NvBlastGlobalGetErrorCallback</a>();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a8ea5fba86bee76ad6764c67c635e8ed5">NvBlastGlobalSetErrorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* errorCallback);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf"> 195</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6">ErrorCode::eINVALID_OPERATION</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">NvBlastMessage::Warning</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77">ErrorCode::eDEBUG_WARNING</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">NvBlastMessage::Info</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba">ErrorCode::eDEBUG_INFO</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">NvBlastMessage::Debug</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a8a2db85363a6de25ef3b1c7576cf5870">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>(errorCode, msg, file, line);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741"> 220</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC(_size) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, nullptr, __FILE__, __LINE__)</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d"> 221</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC_NAMED(_size, _name) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, _name, __FILE__, __LINE__)</span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741"> 222</a></span>&#160;<span class="preprocessor">#define NVBLAST_FREE(_mem) NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(_mem)</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83"> 228</a></span>&#160;<span class="preprocessor">#define NVBLAST_NEW(T) new (NvBlastGlobalGetAllocatorCallback()-&gt;allocate(sizeof(T), #T, __FILE__, __LINE__)) T</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a169634cc0a7d8a8567b8b390c926b2e7"> 234</a></span>&#160;<span class="preprocessor">#define NVBLAST_DELETE(obj, T) \</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> (obj)-&gt;~T(); \</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(obj)</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#aaa478c2c6c4b296431d526caa7ee6369"> 245</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG(_code, _msg) NvBlastGlobalGetErrorCallback()-&gt;reportError(_code, _msg, __FILE__, __LINE__)</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0"> 246</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_ERROR(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg)</span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a571a982fe46cf7f797e63393a027d359"> 247</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_WARNING(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg)</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9315f52cc9bb2de8f03b544716a06dce"> 248</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_INFO(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a840ebe37ee602bb328d88d629f8f3017"> 249</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_DEBUG(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg)</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a12c3113fdc58a74fd2cf9e4839a14d74"> 255</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK(_code, _expr, _msg, _onFail) \</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> if(!(_expr)) \</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> NVBLAST_LOG(_code, _msg); \</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> { _onFail; }; \</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> } </span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a7ac166d3622489e15ed28c5e61b22e0b"> 264</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#addfc51da498a3e77d748dff30084df79"> 265</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9118c6afe116051855dcd7fcd38baa9a"> 266</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#afee8367abfa398f31a979b6a6918492f"> 267</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// Macro to load a uint32_t (or larger) with four characters</span></div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e"> 274</a></span>&#160;<span class="preprocessor">#define NVBLAST_FOURCC(_a, _b, _c, _d) ( (uint32_t)(_a) | (uint32_t)(_b)&lt;&lt;8 | (uint32_t)(_c)&lt;&lt;16 | (uint32_t)(_d)&lt;&lt;24 )</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTGLOBALS_H</span></div><div class="ttc" id="struct_nv_blast_message_html_aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"><div class="ttname"><a href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a></div><div class="ttdoc">Error messages. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:49</div></div>
+<a href="_nv_blast_globals_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTGLOBALS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;new&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">AllocatorCallback</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406"> 51</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#a5770e424c2ae2ca2bb2db50e332f3406">~AllocatorCallback</a>()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(<span class="keywordtype">void</span>* ptr) = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_error_code.html">ErrorCode</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab"> 90</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Enum</a></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b"> 92</a></span>&#160; eNO_ERROR = 0,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba"> 95</a></span>&#160; eDEBUG_INFO = 1,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77"> 98</a></span>&#160; eDEBUG_WARNING = 2,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaec8c84e7ac93ddce73241014c574c771"> 101</a></span>&#160; eINVALID_PARAMETER = 4,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6"> 104</a></span>&#160; eINVALID_OPERATION = 8,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba963775dfd66699f8f657b0d70935eb1e"> 107</a></span>&#160; eOUT_OF_MEMORY = 16,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba019ab0e8fa80ab359838e3afa6bedd7a"> 112</a></span>&#160; eINTERNAL_ERROR = 32,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ababdc867619281f022cc360e8e9964cecb"> 115</a></span>&#160; eABORT = 64,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba8bde8ff474e2a74ccb5de49c316c313a"> 118</a></span>&#160; ePERF_WARNING = 128,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba3161b74e1d5767417c6b3dac7c05f6fe"> 121</a></span>&#160; eMASK_ALL = -1</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;};</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html"> 131</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">ErrorCallback</a></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0"> 134</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a2c00a6e93b1b9f6c6914497c9d9fc2e0">~ErrorCallback</a>()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line) = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a7295934a3be432864d0813dd25e1c2f6">NvBlastGlobalSetAllocatorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html">Nv::Blast::AllocatorCallback</a>* allocatorCallback);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* <a class="code" href="_nv_blast_globals_8h.html#a8a2db85363a6de25ef3b1c7576cf5870">NvBlastGlobalGetErrorCallback</a>();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_globals_8h.html#a8ea5fba86bee76ad6764c67c635e8ed5">NvBlastGlobalSetErrorCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html">Nv::Blast::ErrorCallback</a>* errorCallback);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf"> 195</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">ErrorCode::Enum</a> errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523abaede638d04bfee0ec0dfe0c155cb48fb6">ErrorCode::eINVALID_OPERATION</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">NvBlastMessage::Warning</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba88ddbb0adcd520fd128e19973afd5d77">ErrorCode::eDEBUG_WARNING</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">NvBlastMessage::Info</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba55eb81168a3b4017418d0606501290ba">ErrorCode::eDEBUG_INFO</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">NvBlastMessage::Debug</a>: errorCode = <a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523aba0e418ff07f71a7bb14012a91c882554b">ErrorCode::eNO_ERROR</a>; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a8a2db85363a6de25ef3b1c7576cf5870">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>(errorCode, msg, file, line);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a5d66f893822bf7f14f90e2b5480c6741"> 220</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC(_size) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, nullptr, __FILE__, __LINE__)</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d"> 221</a></span>&#160;<span class="preprocessor">#define NVBLAST_ALLOC_NAMED(_size, _name) NvBlastGlobalGetAllocatorCallback()-&gt;allocate(_size, _name, __FILE__, __LINE__)</span></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741"> 222</a></span>&#160;<span class="preprocessor">#define NVBLAST_FREE(_mem) NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(_mem)</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#acae7d0ae139069c3dc07f095d16bff83"> 228</a></span>&#160;<span class="preprocessor">#define NVBLAST_NEW(T) new (NvBlastGlobalGetAllocatorCallback()-&gt;allocate(sizeof(T), #T, __FILE__, __LINE__)) T</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a169634cc0a7d8a8567b8b390c926b2e7"> 234</a></span>&#160;<span class="preprocessor">#define NVBLAST_DELETE(obj, T) \</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> (obj)-&gt;~T(); \</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> NvBlastGlobalGetAllocatorCallback()-&gt;deallocate(obj)</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#aaa478c2c6c4b296431d526caa7ee6369"> 245</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG(_code, _msg) NvBlastGlobalGetErrorCallback()-&gt;reportError(_code, _msg, __FILE__, __LINE__)</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a67129e1adea0a0ed0c08da1b16497da0"> 246</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_ERROR(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg)</span></div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a571a982fe46cf7f797e63393a027d359"> 247</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_WARNING(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg)</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9315f52cc9bb2de8f03b544716a06dce"> 248</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_INFO(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a840ebe37ee602bb328d88d629f8f3017"> 249</a></span>&#160;<span class="preprocessor">#define NVBLAST_LOG_DEBUG(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg)</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a12c3113fdc58a74fd2cf9e4839a14d74"> 255</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK(_code, _expr, _msg, _onFail) \</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> if(!(_expr)) \</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> NVBLAST_LOG(_code, _msg); \</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> { _onFail; }; \</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> } </span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a7ac166d3622489e15ed28c5e61b22e0b"> 264</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#addfc51da498a3e77d748dff30084df79"> 265</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a9118c6afe116051855dcd7fcd38baa9a"> 266</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#afee8367abfa398f31a979b6a6918492f"> 267</a></span>&#160;<span class="preprocessor">#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail)</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// Macro to load a uint32_t (or larger) with four characters</span></div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e"> 274</a></span>&#160;<span class="preprocessor">#define NVBLAST_FOURCC(_a, _b, _c, _d) ( (uint32_t)(_a) | (uint32_t)(_b)&lt;&lt;8 | (uint32_t)(_c)&lt;&lt;16 | (uint32_t)(_d)&lt;&lt;24 )</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTGLOBALS_H</span></div><div class="ttc" id="struct_nv_blast_message_html_aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"><div class="ttname"><a href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a></div><div class="ttdoc">Error messages. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:49</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
<div class="ttc" id="_nv_blast_globals_8h_html_a8ea5fba86bee76ad6764c67c635e8ed5"><div class="ttname"><a href="_nv_blast_globals_8h.html#a8ea5fba86bee76ad6764c67c635e8ed5">NvBlastGlobalSetErrorCallback</a></div><div class="ttdeci">NVBLAST_API void NvBlastGlobalSetErrorCallback(Nv::Blast::ErrorCallback *errorCallback)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_ae0303f5b6c3993251bdf790f43ef4e90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">Nv::Blast::AllocatorCallback::allocate</a></div><div class="ttdeci">virtual void * allocate(size_t size, const char *typeName, const char *filename, int line)=0</div><div class="ttdoc">Allocates size bytes of memory, which must be 16-byte aligned. </div></div>
diff --git a/docs/source_docs/files/_nv_blast_hash_map_8h_source.html b/docs/source_docs/files/_nv_blast_hash_map_8h_source.html
index a891e16..be28399 100755
--- a/docs/source_docs/files/_nv_blast_hash_map_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_hash_map_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_hash_map_8h_source.html','')
<div class="title">NvBlastHashMap.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_hash_map_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTHASHMAP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTHASHMAP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PsHashMap.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Key, <span class="keyword">class</span> Value, <span class="keyword">class</span> HashFn = physx::shdfnd::Hash&lt;Key&gt;&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_map.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html">HashMap</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f"> 48</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::HashMap&lt;Key, Value, HashFn, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">type</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTHASHMAP_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_hash_map_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_map.html">Nv::Blast::HashMap</a></div><div class="ttdef"><b>Definition:</b> NvBlastHashMap.h:46</div></div>
+<a href="_nv_blast_hash_map_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTHASHMAP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTHASHMAP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PsHashMap.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Key, <span class="keyword">class</span> Value, <span class="keyword">class</span> HashFn = physx::shdfnd::Hash&lt;Key&gt;&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_map.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html">HashMap</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f"> 48</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::HashMap&lt;Key, Value, HashFn, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">type</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTHASHMAP_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_hash_map_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_map.html">Nv::Blast::HashMap</a></div><div class="ttdef"><b>Definition:</b> NvBlastHashMap.h:46</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_hash_map_html_a959b6d3c31a9f21ed69f0cfcade20d3f"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">Nv::Blast::HashMap::type</a></div><div class="ttdeci">physx::shdfnd::HashMap&lt; Key, Value, HashFn, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastHashMap.h:48</div></div>
<div class="ttc" id="_nv_blast_allocator_8h_html"><div class="ttname"><a href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a></div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_hash_set_8h_source.html b/docs/source_docs/files/_nv_blast_hash_set_8h_source.html
index b7a3864..cc56f6a 100755
--- a/docs/source_docs/files/_nv_blast_hash_set_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_hash_set_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_hash_set_8h_source.html','')
<div class="title">NvBlastHashSet.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_hash_set_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTHASHSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTHASHSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PsHashSet.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Key, <span class="keyword">class</span> HashFn = physx::shdfnd::Hash&lt;Key&gt;&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_set.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html">HashSet</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93"> 47</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::HashSet&lt;Key, HashFn, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">type</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTHASHSET_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_hash_set_html_abb3e1de36be2fb129233251f720c0d93"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">Nv::Blast::HashSet::type</a></div><div class="ttdeci">physx::shdfnd::HashSet&lt; Key, HashFn, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastHashSet.h:47</div></div>
+<a href="_nv_blast_hash_set_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTHASHSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTHASHSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PsHashSet.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Key, <span class="keyword">class</span> HashFn = physx::shdfnd::Hash&lt;Key&gt;&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_set.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html">HashSet</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93"> 47</a></span>&#160; <span class="keyword">typedef</span> physx::shdfnd::HashSet&lt;Key, HashFn, Allocator&gt; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">type</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTHASHSET_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_hash_set_html_abb3e1de36be2fb129233251f720c0d93"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">Nv::Blast::HashSet::type</a></div><div class="ttdeci">physx::shdfnd::HashSet&lt; Key, HashFn, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastHashSet.h:47</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_hash_set_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_hash_set.html">Nv::Blast::HashSet</a></div><div class="ttdef"><b>Definition:</b> NvBlastHashSet.h:45</div></div>
<div class="ttc" id="_nv_blast_allocator_8h_html"><div class="ttname"><a href="_nv_blast_allocator_8h.html">NvBlastAllocator.h</a></div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_i_d_d_t_o_8h_source.html b/docs/source_docs/files/_nv_blast_i_d_d_t_o_8h_source.html
index 800b3f5..2085dd3 100755
--- a/docs/source_docs/files/_nv_blast_i_d_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_i_d_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_i_d_d_t_o_8h_source.html',''
<div class="title">NvBlastIDDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_i_d_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>, <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>, ::<a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_u_u_i_d.html">Nv::Blast::Serialization::UUID</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_nv_blast_i_d_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_ll_serialization_8capn_8h.html">generated/NvBlastExtLlSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>, <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>, ::<a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_u_u_i_d.html">Nv::Blast::Serialization::UUID</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="_nv_blast_ext_ll_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_ll_serialization_8capn_8h.html">NvBlastExtLlSerialization.capn.h</a></div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="struct_nv_blast_i_d_html"><div class="ttname"><a href="struct_nv_blast_i_d.html">NvBlastID</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:69</div></div>
diff --git a/docs/source_docs/files/_nv_blast_include_windows_8h_source.html b/docs/source_docs/files/_nv_blast_include_windows_8h_source.html
index a5955b1..89f20d6 100755
--- a/docs/source_docs/files/_nv_blast_include_windows_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_include_windows_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_include_windows_8h_source.ht
<div class="title">NvBlastIncludeWindows.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_include_windows_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTINCLUDEWINDOWS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTINCLUDEWINDOWS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#ifndef _WINDOWS_ // windows already included if this is defined</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef _WIN32</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#error &quot;This file should only be included by Windows builds!!&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// We only support &gt;= Windows XP, and we need this for critical section and</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if !NV_WINRT</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ac50762666aa00bd3a4308158510f1748"> 42</a></span>&#160;<span class="preprocessor">#define _WIN32_WINNT 0x0501</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define _WIN32_WINNT 0x0602</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// turn off as much as we can for windows. All we really need is the thread functions(critical sections/Interlocked*</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// etc)</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8effd0655f96cc25e57c0b348669df7b"> 49</a></span>&#160;<span class="preprocessor">#define NOGDICAPMASKS</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ac5ff788cb8638ce5daf99e586083eef2"> 50</a></span>&#160;<span class="preprocessor">#define NOVIRTUALKEYCODES</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a90d30d395de13a4f31a42b4066cfbb68"> 51</a></span>&#160;<span class="preprocessor">#define NOWINMESSAGES</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a22c56a31990574a86b40f60b6073cdba"> 52</a></span>&#160;<span class="preprocessor">#define NOWINSTYLES</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#aea709a8ba0a7d510cefcf625fdb3b4b1"> 53</a></span>&#160;<span class="preprocessor">#define NOSYSMETRICS</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a15dd7444df67d292b83dc869d6e4b417"> 54</a></span>&#160;<span class="preprocessor">#define NOMENUS</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8b8c544b2e9e3359de25f7d89f4f5de9"> 55</a></span>&#160;<span class="preprocessor">#define NOICONS</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a6f4a8b3fe02f55fd022b91b3a965e15c"> 56</a></span>&#160;<span class="preprocessor">#define NOKEYSTATES</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a271ce221dc9c5c8887d443008b3d718c"> 57</a></span>&#160;<span class="preprocessor">#define NOSYSCOMMANDS</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a0293d1b2742d9c9ef401d75a55b81859"> 58</a></span>&#160;<span class="preprocessor">#define NORASTEROPS</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ab2dcc39e73a373330467f5f503c779d3"> 59</a></span>&#160;<span class="preprocessor">#define NOSHOWWINDOW</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#aa59dc3d2c7dc2ec85638761aeb2d50f7"> 60</a></span>&#160;<span class="preprocessor">#define NOATOM</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2e4c78354db40d44bea894e472550c11"> 61</a></span>&#160;<span class="preprocessor">#define NOCLIPBOARD</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ad99d89815bdc61acfe8744c41c96e637"> 62</a></span>&#160;<span class="preprocessor">#define NOCOLOR</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a679a4dcdfeb97910576cff8452efb28e"> 63</a></span>&#160;<span class="preprocessor">#define NOCTLMGR</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a5ceb8b3e84824f87cae315091546e67f"> 64</a></span>&#160;<span class="preprocessor">#define NODRAWTEXT</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2bedaca1c6ca66de2397772910fbe140"> 65</a></span>&#160;<span class="preprocessor">#define NOGDI</span></div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8bd3112472ae1e33be8faf5294230948"> 66</a></span>&#160;<span class="preprocessor">#define NOMB</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8b2f514658ba28ae0ea3b8b96edf520e"> 67</a></span>&#160;<span class="preprocessor">#define NOMEMMGR</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a37618c72c08b2464576612b2ac595b30"> 68</a></span>&#160;<span class="preprocessor">#define NOMETAFILE</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a9f918755b601cf4bffca775992e6fb90"> 69</a></span>&#160;<span class="preprocessor">#define NOMINMAX</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2d7186e4a6dfcc0011461ce1e8b70a05"> 70</a></span>&#160;<span class="preprocessor">#define NOOPENFILE</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a06f62f70cab65b4c19972202f784e12d"> 71</a></span>&#160;<span class="preprocessor">#define NOSCROLL</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a14ac98af6281e748377693d824e41ca9"> 72</a></span>&#160;<span class="preprocessor">#define NOSERVICE</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#af40cddcc88a6ebeed4f75d4bbbed195e"> 73</a></span>&#160;<span class="preprocessor">#define NOSOUND</span></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a7d6ea5ce712ed1d05533cf8ebf38d880"> 74</a></span>&#160;<span class="preprocessor">#define NOTEXTMETRIC</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#aac388bb1bd11a9a15b594321658ae233"> 75</a></span>&#160;<span class="preprocessor">#define NOWH</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a964a6e23899e4f0b1886d86b1981545d"> 76</a></span>&#160;<span class="preprocessor">#define NOWINOFFSETS</span></div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2ee511fa2fd29a9a1f0efbcb2c364b8f"> 77</a></span>&#160;<span class="preprocessor">#define NOCOMM</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a0958eca070bb77eddff0a604acda46f2"> 78</a></span>&#160;<span class="preprocessor">#define NOKANJI</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a34c6896a3b5f4079b3539fb8118be1d5"> 79</a></span>&#160;<span class="preprocessor">#define NOHELP</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#af883320ccbc88fe5ff2d8733ec0a034f"> 80</a></span>&#160;<span class="preprocessor">#define NOPROFILER</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a348ad07df4aceda9097d9497b78bccd9"> 81</a></span>&#160;<span class="preprocessor">#define NODEFERWINDOWPOS</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a256fe1caeb996b1142c3eb51097fef0e"> 82</a></span>&#160;<span class="preprocessor">#define NOMCX</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ac7bef5d85e3dcd73eef56ad39ffc84a9"> 84</a></span>&#160;<span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#if !NV_WINRT</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a73886ff6a915a4a92e3ade13eba71f6d"> 87</a></span>&#160;<span class="preprocessor">#define NOUSER</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a52be9abe7ca69b513aa7e975284d4f67"> 88</a></span>&#160;<span class="preprocessor">#define NONLS</span></div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a1f4e51b89381cd3aecebd55bd4d700b6"> 89</a></span>&#160;<span class="preprocessor">#define NOMSG</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#pragma warning(push)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#pragma warning(disable : 4668) //&#39;symbol&#39; is not defined as a preprocessor macro, replacing with &#39;0&#39; for &#39;directives&#39;</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#include &lt;windows.h&gt;</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#pragma warning(pop)</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#if NV_SSE2</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#include &lt;xmmintrin.h&gt;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // #ifndef _WINDOWS_</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTINCLUDEWINDOWS_H</span></div><div class="ttc" id="_nv_blast_preprocessor_8h_html"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a></div></div>
+<a href="_nv_blast_include_windows_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTINCLUDEWINDOWS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTINCLUDEWINDOWS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#ifndef _WINDOWS_ // windows already included if this is defined</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef _WIN32</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#error &quot;This file should only be included by Windows builds!!&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// We only support &gt;= Windows XP, and we need this for critical section and</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if !NV_WINRT</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ac50762666aa00bd3a4308158510f1748"> 42</a></span>&#160;<span class="preprocessor">#define _WIN32_WINNT 0x0501</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define _WIN32_WINNT 0x0602</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// turn off as much as we can for windows. All we really need is the thread functions(critical sections/Interlocked*</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// etc)</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8effd0655f96cc25e57c0b348669df7b"> 49</a></span>&#160;<span class="preprocessor">#define NOGDICAPMASKS</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ac5ff788cb8638ce5daf99e586083eef2"> 50</a></span>&#160;<span class="preprocessor">#define NOVIRTUALKEYCODES</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a90d30d395de13a4f31a42b4066cfbb68"> 51</a></span>&#160;<span class="preprocessor">#define NOWINMESSAGES</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a22c56a31990574a86b40f60b6073cdba"> 52</a></span>&#160;<span class="preprocessor">#define NOWINSTYLES</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#aea709a8ba0a7d510cefcf625fdb3b4b1"> 53</a></span>&#160;<span class="preprocessor">#define NOSYSMETRICS</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a15dd7444df67d292b83dc869d6e4b417"> 54</a></span>&#160;<span class="preprocessor">#define NOMENUS</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8b8c544b2e9e3359de25f7d89f4f5de9"> 55</a></span>&#160;<span class="preprocessor">#define NOICONS</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a6f4a8b3fe02f55fd022b91b3a965e15c"> 56</a></span>&#160;<span class="preprocessor">#define NOKEYSTATES</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a271ce221dc9c5c8887d443008b3d718c"> 57</a></span>&#160;<span class="preprocessor">#define NOSYSCOMMANDS</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a0293d1b2742d9c9ef401d75a55b81859"> 58</a></span>&#160;<span class="preprocessor">#define NORASTEROPS</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ab2dcc39e73a373330467f5f503c779d3"> 59</a></span>&#160;<span class="preprocessor">#define NOSHOWWINDOW</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#aa59dc3d2c7dc2ec85638761aeb2d50f7"> 60</a></span>&#160;<span class="preprocessor">#define NOATOM</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2e4c78354db40d44bea894e472550c11"> 61</a></span>&#160;<span class="preprocessor">#define NOCLIPBOARD</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ad99d89815bdc61acfe8744c41c96e637"> 62</a></span>&#160;<span class="preprocessor">#define NOCOLOR</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a679a4dcdfeb97910576cff8452efb28e"> 63</a></span>&#160;<span class="preprocessor">#define NOCTLMGR</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a5ceb8b3e84824f87cae315091546e67f"> 64</a></span>&#160;<span class="preprocessor">#define NODRAWTEXT</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2bedaca1c6ca66de2397772910fbe140"> 65</a></span>&#160;<span class="preprocessor">#define NOGDI</span></div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8bd3112472ae1e33be8faf5294230948"> 66</a></span>&#160;<span class="preprocessor">#define NOMB</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a8b2f514658ba28ae0ea3b8b96edf520e"> 67</a></span>&#160;<span class="preprocessor">#define NOMEMMGR</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a37618c72c08b2464576612b2ac595b30"> 68</a></span>&#160;<span class="preprocessor">#define NOMETAFILE</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a9f918755b601cf4bffca775992e6fb90"> 69</a></span>&#160;<span class="preprocessor">#define NOMINMAX</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2d7186e4a6dfcc0011461ce1e8b70a05"> 70</a></span>&#160;<span class="preprocessor">#define NOOPENFILE</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a06f62f70cab65b4c19972202f784e12d"> 71</a></span>&#160;<span class="preprocessor">#define NOSCROLL</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a14ac98af6281e748377693d824e41ca9"> 72</a></span>&#160;<span class="preprocessor">#define NOSERVICE</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#af40cddcc88a6ebeed4f75d4bbbed195e"> 73</a></span>&#160;<span class="preprocessor">#define NOSOUND</span></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a7d6ea5ce712ed1d05533cf8ebf38d880"> 74</a></span>&#160;<span class="preprocessor">#define NOTEXTMETRIC</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#aac388bb1bd11a9a15b594321658ae233"> 75</a></span>&#160;<span class="preprocessor">#define NOWH</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a964a6e23899e4f0b1886d86b1981545d"> 76</a></span>&#160;<span class="preprocessor">#define NOWINOFFSETS</span></div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a2ee511fa2fd29a9a1f0efbcb2c364b8f"> 77</a></span>&#160;<span class="preprocessor">#define NOCOMM</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a0958eca070bb77eddff0a604acda46f2"> 78</a></span>&#160;<span class="preprocessor">#define NOKANJI</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a34c6896a3b5f4079b3539fb8118be1d5"> 79</a></span>&#160;<span class="preprocessor">#define NOHELP</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#af883320ccbc88fe5ff2d8733ec0a034f"> 80</a></span>&#160;<span class="preprocessor">#define NOPROFILER</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a348ad07df4aceda9097d9497b78bccd9"> 81</a></span>&#160;<span class="preprocessor">#define NODEFERWINDOWPOS</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a256fe1caeb996b1142c3eb51097fef0e"> 82</a></span>&#160;<span class="preprocessor">#define NOMCX</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#ac7bef5d85e3dcd73eef56ad39ffc84a9"> 84</a></span>&#160;<span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#if !NV_WINRT</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a73886ff6a915a4a92e3ade13eba71f6d"> 87</a></span>&#160;<span class="preprocessor">#define NOUSER</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a52be9abe7ca69b513aa7e975284d4f67"> 88</a></span>&#160;<span class="preprocessor">#define NONLS</span></div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="_nv_blast_include_windows_8h.html#a1f4e51b89381cd3aecebd55bd4d700b6"> 89</a></span>&#160;<span class="preprocessor">#define NOMSG</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#pragma warning(push)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#pragma warning(disable : 4668) //&#39;symbol&#39; is not defined as a preprocessor macro, replacing with &#39;0&#39; for &#39;directives&#39;</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#include &lt;windows.h&gt;</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#pragma warning(pop)</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#if NV_SSE2</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#include &lt;xmmintrin.h&gt;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // #ifndef _WINDOWS_</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTINCLUDEWINDOWS_H</span></div><div class="ttc" id="_nv_blast_preprocessor_8h_html"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/source_docs/files/_nv_blast_index_fns_8h_source.html b/docs/source_docs/files/_nv_blast_index_fns_8h_source.html
index b858c94..3f2f4c2 100755
--- a/docs/source_docs/files/_nv_blast_index_fns_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_index_fns_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_index_fns_8h_source.html',''
<div class="title">NvBlastIndexFns.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_index_fns_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTINDEXFNS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTINDEXFNS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#afe58dd395f2ecd13c86b5a4a7c7b2a20"> 47</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#afe58dd395f2ecd13c86b5a4a7c7b2a20">invalidIndex</a>()</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> ~(T)0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41"> 57</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(T index)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> index == invalidIndex&lt;T&gt;();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a829c77a7e4a26760ebf74e644e7d5347"> 96</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a829c77a7e4a26760ebf74e644e7d5347">createIndexStartLookup</a>(T* lookup, T indexBase, T indexRange, T* indexSource, T indexCount, T indexByteStride)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; ++indexBase; <span class="comment">// Ordering invalidIndex&lt;T&gt;() as lowest value</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; T indexPos = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span> (T i = 0; i &lt;= indexRange; ++i)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (; indexPos &lt; indexCount; ++indexPos, indexSource = (T*)((uintptr_t)indexSource + indexByteStride))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (*indexSource + 1 &gt;= i + indexBase) <span class="comment">// +1 to order invalidIndex&lt;T&gt;() as lowest value</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; lookup[i] = indexPos;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (indexPos == indexCount)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; lookup[i] = indexPos;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; lookup[indexRange + 1] = indexCount;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a0ed74c066434e88decde995b52cb7ee3"> 128</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a0ed74c066434e88decde995b52cb7ee3">invertMap</a>(T* inverseMap, <span class="keyword">const</span> T* map, <span class="keyword">const</span> T size)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; memset(inverseMap, invalidIndex&lt;T&gt;(), size*<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">for</span> (T i = 0; i &lt; size; i++)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(map[i]))</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; inverseMap[map[i]] = i;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;} <span class="comment">// end namespace Blast</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;} <span class="comment">// end namespace Nv</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTINDEXFNS_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a829c77a7e4a26760ebf74e644e7d5347"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a829c77a7e4a26760ebf74e644e7d5347">Nv::Blast::createIndexStartLookup</a></div><div class="ttdeci">void createIndexStartLookup(T *lookup, T indexBase, T indexRange, T *indexSource, T indexCount, T indexByteStride)</div><div class="ttdef"><b>Definition:</b> NvBlastIndexFns.h:96</div></div>
+<a href="_nv_blast_index_fns_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTINDEXFNS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTINDEXFNS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#afe58dd395f2ecd13c86b5a4a7c7b2a20"> 47</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#afe58dd395f2ecd13c86b5a4a7c7b2a20">invalidIndex</a>()</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> ~(T)0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41"> 57</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(T index)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> index == invalidIndex&lt;T&gt;();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a829c77a7e4a26760ebf74e644e7d5347"> 96</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a829c77a7e4a26760ebf74e644e7d5347">createIndexStartLookup</a>(T* lookup, T indexBase, T indexRange, T* indexSource, T indexCount, T indexByteStride)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; ++indexBase; <span class="comment">// Ordering invalidIndex&lt;T&gt;() as lowest value</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; T indexPos = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span> (T i = 0; i &lt;= indexRange; ++i)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (; indexPos &lt; indexCount; ++indexPos, indexSource = (T*)((uintptr_t)indexSource + indexByteStride))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (*indexSource + 1 &gt;= i + indexBase) <span class="comment">// +1 to order invalidIndex&lt;T&gt;() as lowest value</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; lookup[i] = indexPos;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (indexPos == indexCount)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; lookup[i] = indexPos;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; lookup[indexRange + 1] = indexCount;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a0ed74c066434e88decde995b52cb7ee3"> 128</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a0ed74c066434e88decde995b52cb7ee3">invertMap</a>(T* inverseMap, <span class="keyword">const</span> T* map, <span class="keyword">const</span> T size)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; memset(inverseMap, invalidIndex&lt;T&gt;(), size*<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">for</span> (T i = 0; i &lt; size; i++)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">isInvalidIndex</a>(map[i]))</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; inverseMap[map[i]] = i;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;} <span class="comment">// end namespace Blast</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;} <span class="comment">// end namespace Nv</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTINDEXFNS_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a829c77a7e4a26760ebf74e644e7d5347"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a829c77a7e4a26760ebf74e644e7d5347">Nv::Blast::createIndexStartLookup</a></div><div class="ttdeci">void createIndexStartLookup(T *lookup, T indexBase, T indexRange, T *indexSource, T indexCount, T indexByteStride)</div><div class="ttdef"><b>Definition:</b> NvBlastIndexFns.h:96</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_a957511eee89321883f3507e0cd310a41"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a957511eee89321883f3507e0cd310a41">Nv::Blast::isInvalidIndex</a></div><div class="ttdeci">NV_INLINE bool isInvalidIndex(T index)</div><div class="ttdef"><b>Definition:</b> NvBlastIndexFns.h:57</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_afe58dd395f2ecd13c86b5a4a7c7b2a20"><div class="ttname"><a href="namespace_nv_1_1_blast.html#afe58dd395f2ecd13c86b5a4a7c7b2a20">Nv::Blast::invalidIndex</a></div><div class="ttdeci">NV_INLINE T invalidIndex()</div><div class="ttdef"><b>Definition:</b> NvBlastIndexFns.h:47</div></div>
diff --git a/docs/source_docs/files/_nv_blast_iterator_base_8h_source.html b/docs/source_docs/files/_nv_blast_iterator_base_8h_source.html
index 10ecc2c..0e34f2c 100755
--- a/docs/source_docs/files/_nv_blast_iterator_base_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_iterator_base_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_iterator_base_8h_source.html
<div class="title">NvBlastIteratorBase.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_iterator_base_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTITERATORBASE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTITERATORBASE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ad9e9d786a928a75c203f9942748dd919">IteratorBase</a>(T curr);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">operator</span> bool() <span class="keyword">const</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">operator</span> T() <span class="keyword">const</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432"> 58</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#ad9e9d786a928a75c203f9942748dd919"> 65</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ad9e9d786a928a75c203f9942748dd919">IteratorBase&lt;T&gt;::IteratorBase</a>(T curr) : <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>(curr)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#a3ffa86c860c9b40ffcf82b37f2fd1212"> 71</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase&lt;T&gt;::operator</a> bool()<span class="keyword"> const</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> !isInvalidIndex&lt;T&gt;(m_curr);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#ab7298c210209e918711851424e80a983"> 78</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase&lt;T&gt;::operator</a> T()<span class="keyword"> const</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> m_curr;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html"> 88</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a>(IndexType curr, IndexType* links);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint32_t operator ++ ();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html#a69636ed35620c0e9183cbf365672116d"> 97</a></span>&#160; IndexType* <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html#a69636ed35620c0e9183cbf365672116d">m_links</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;};</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html#acf0e8a4a9231c9dacdc8e1a4d9c25e48"> 104</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt&lt;IndexType&gt;::LListIt</a>(IndexType curr, IndexType* links) : <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;(curr), m_links(links)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html#a3d9ae2531578e90373775d3f852efd07"> 110</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt&lt;IndexType&gt;::operator ++ </a>()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((<span class="keywordtype">bool</span>)(*<span class="keyword">this</span>));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> (this-&gt;m_curr = m_links[this-&gt;m_curr]);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html"> 121</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a>(IndexType curr, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t operator ++ ();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html#aa453f366251c68ef44755eab19c47cd4"> 130</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html#aa453f366251c68ef44755eab19c47cd4">m_links</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html#a6d587e353b6ae1e61c4654cdc770064a"> 137</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt&lt;IndexType&gt;::DListIt</a>(IndexType curr, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links) : <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;(curr), m_links(links)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html#a455d7a1962fc054d4dea3203234eb677"> 143</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt&lt;IndexType&gt;::operator ++ </a>()</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((<span class="keywordtype">bool</span>)(*<span class="keyword">this</span>));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> (this-&gt;m_curr = m_links[this-&gt;m_curr].m_adj[1]);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// end namespace Blast</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// end namespace Nv</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTITERATORBASE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_d_list_it_html_aa453f366251c68ef44755eab19c47cd4"><div class="ttname"><a href="class_nv_1_1_blast_1_1_d_list_it.html#aa453f366251c68ef44755eab19c47cd4">Nv::Blast::DListIt::m_links</a></div><div class="ttdeci">IndexDLink&lt; IndexType &gt; * m_links</div><div class="ttdef"><b>Definition:</b> NvBlastIteratorBase.h:130</div></div>
+<a href="_nv_blast_iterator_base_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTITERATORBASE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTITERATORBASE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ad9e9d786a928a75c203f9942748dd919">IteratorBase</a>(T curr);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">operator</span> bool() <span class="keyword">const</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">operator</span> T() <span class="keyword">const</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432"> 58</a></span>&#160; T <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#ad9e9d786a928a75c203f9942748dd919"> 65</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ad9e9d786a928a75c203f9942748dd919">IteratorBase&lt;T&gt;::IteratorBase</a>(T curr) : <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">m_curr</a>(curr)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#a3ffa86c860c9b40ffcf82b37f2fd1212"> 71</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase&lt;T&gt;::operator</a> bool()<span class="keyword"> const</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> !isInvalidIndex&lt;T&gt;(m_curr);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_iterator_base.html#ab7298c210209e918711851424e80a983"> 78</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase&lt;T&gt;::operator</a> T()<span class="keyword"> const</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> m_curr;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html"> 88</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt</a>(IndexType curr, IndexType* links);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint32_t operator ++ ();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html#a69636ed35620c0e9183cbf365672116d"> 97</a></span>&#160; IndexType* <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html#a69636ed35620c0e9183cbf365672116d">m_links</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;};</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html#acf0e8a4a9231c9dacdc8e1a4d9c25e48"> 104</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt&lt;IndexType&gt;::LListIt</a>(IndexType curr, IndexType* links) : <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;(curr), m_links(links)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_l_list_it.html#a3d9ae2531578e90373775d3f852efd07"> 110</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_l_list_it.html">LListIt&lt;IndexType&gt;::operator ++ </a>()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((<span class="keywordtype">bool</span>)(*<span class="keyword">this</span>));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> (this-&gt;m_curr = m_links[this-&gt;m_curr]);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html"> 121</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt</a>(IndexType curr, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint32_t operator ++ ();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html#aa453f366251c68ef44755eab19c47cd4"> 130</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html#aa453f366251c68ef44755eab19c47cd4">m_links</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html#a6d587e353b6ae1e61c4654cdc770064a"> 137</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt&lt;IndexType&gt;::DListIt</a>(IndexType curr, <a class="code" href="struct_nv_1_1_blast_1_1_index_d_link.html">IndexDLink&lt;IndexType&gt;</a>* links) : <a class="code" href="class_nv_1_1_blast_1_1_iterator_base.html">IteratorBase</a>&lt;IndexType&gt;(curr), m_links(links)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> IndexType&gt;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_d_list_it.html#a455d7a1962fc054d4dea3203234eb677"> 143</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_d_list_it.html">DListIt&lt;IndexType&gt;::operator ++ </a>()</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>((<span class="keywordtype">bool</span>)(*<span class="keyword">this</span>));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> (this-&gt;m_curr = m_links[this-&gt;m_curr].m_adj[1]);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// end namespace Blast</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// end namespace Nv</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTITERATORBASE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_d_list_it_html_aa453f366251c68ef44755eab19c47cd4"><div class="ttname"><a href="class_nv_1_1_blast_1_1_d_list_it.html#aa453f366251c68ef44755eab19c47cd4">Nv::Blast::DListIt::m_links</a></div><div class="ttdeci">IndexDLink&lt; IndexType &gt; * m_links</div><div class="ttdef"><b>Definition:</b> NvBlastIteratorBase.h:130</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_iterator_base_html_ac78398c707b1b14795e9ba113ff6b432"><div class="ttname"><a href="class_nv_1_1_blast_1_1_iterator_base.html#ac78398c707b1b14795e9ba113ff6b432">Nv::Blast::IteratorBase::m_curr</a></div><div class="ttdeci">T m_curr</div><div class="ttdef"><b>Definition:</b> NvBlastIteratorBase.h:58</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_l_list_it_html_a69636ed35620c0e9183cbf365672116d"><div class="ttname"><a href="class_nv_1_1_blast_1_1_l_list_it.html#a69636ed35620c0e9183cbf365672116d">Nv::Blast::LListIt::m_links</a></div><div class="ttdeci">IndexType * m_links</div><div class="ttdef"><b>Definition:</b> NvBlastIteratorBase.h:97</div></div>
<div class="ttc" id="_nv_blast_assert_8h_html_a2b179fca67cdb57b12b65e33fe3f6c93"><div class="ttname"><a href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a></div><div class="ttdeci">#define NVBLAST_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> NvBlastAssert.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_math_8h_source.html b/docs/source_docs/files/_nv_blast_math_8h_source.html
index 40d10fe..042be3b 100755
--- a/docs/source_docs/files/_nv_blast_math_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_math_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_math_8h_source.html','');});
<div class="title">NvBlastMath.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_math_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTMATH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTMATH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html"> 39</a></span>&#160;<span class="keyword">namespace </span>VecMath</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a171cbcf9510fa3804c56ecfcf78da929"> 43</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a171cbcf9510fa3804c56ecfcf78da929">div</a>(<span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> divisor)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; a[i] /= divisor;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a258a9333f07d3c54170aa74b90366e73"> 49</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a258a9333f07d3c54170aa74b90366e73">mul</a>(<span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> multiplier)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; a[i] *= multiplier;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1"> 55</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1">add</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> b[3])</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; b[i] = a[i] + b[i];</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#aff9758a004eaba1c34d93b67cc2372ca"> 61</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1">add</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3], <span class="keywordtype">float</span> r[3])</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; r[i] = a[i] + b[i];</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4"> 67</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">sub</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3], <span class="keywordtype">float</span> r[3])</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; r[i] = a[i] - b[i];</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4"> 73</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">dot</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3])</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">float</span> r = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; r += a[i] * b[i];</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> r;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c"> 81</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c">length</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3])</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> sqrtf(<a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">dot</a>(a, a));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc"> 86</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3])</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">float</span> v[3];</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">sub</a>(a, b, v);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c">length</a>(v);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794"> 93</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> r[3])</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">float</span> d = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c">length</a>(a);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; r[i] = a[i] / d;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> d;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">// namespace VecMath</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTMATH_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a40a71c61826702e77bc117fcc005ebf1"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1">Nv::Blast::VecMath::add</a></div><div class="ttdeci">NV_INLINE void add(const float a[3], float b[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:55</div></div>
+<a href="_nv_blast_math_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTMATH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTMATH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html"> 39</a></span>&#160;<span class="keyword">namespace </span>VecMath</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a171cbcf9510fa3804c56ecfcf78da929"> 43</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a171cbcf9510fa3804c56ecfcf78da929">div</a>(<span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> divisor)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; a[i] /= divisor;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a258a9333f07d3c54170aa74b90366e73"> 49</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a258a9333f07d3c54170aa74b90366e73">mul</a>(<span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> multiplier)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; a[i] *= multiplier;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1"> 55</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1">add</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> b[3])</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; b[i] = a[i] + b[i];</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#aff9758a004eaba1c34d93b67cc2372ca"> 61</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1">add</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3], <span class="keywordtype">float</span> r[3])</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; r[i] = a[i] + b[i];</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4"> 67</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">sub</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3], <span class="keywordtype">float</span> r[3])</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; r[i] = a[i] - b[i];</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4"> 73</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">dot</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3])</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">float</span> r = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; r += a[i] * b[i];</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> r;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c"> 81</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c">length</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3])</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> sqrtf(<a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a91266f20b4a3e7658eedf69ec1f311f4">dot</a>(a, a));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc"> 86</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">dist</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keyword">const</span> <span class="keywordtype">float</span> b[3])</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">float</span> v[3];</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">sub</a>(a, b, v);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c">length</a>(v);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794"> 93</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> a[3], <span class="keywordtype">float</span> r[3])</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">float</span> d = <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c15bbfd92f50bb69873a3e54281a42c">length</a>(a);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; r[i] = a[i] / d;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> d;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">// namespace VecMath</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTMATH_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a40a71c61826702e77bc117fcc005ebf1"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a40a71c61826702e77bc117fcc005ebf1">Nv::Blast::VecMath::add</a></div><div class="ttdeci">NV_INLINE void add(const float a[3], float b[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:55</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a977e74623adf1a08686f4dc5a6f241bc"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a977e74623adf1a08686f4dc5a6f241bc">Nv::Blast::VecMath::dist</a></div><div class="ttdeci">NV_INLINE float dist(const float a[3], const float b[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:86</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a1c8d1bbcf531b04e6ff52f5357987794"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">Nv::Blast::VecMath::normal</a></div><div class="ttdeci">NV_INLINE float normal(const float a[3], float r[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:93</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a1da912deb1046ef7afc447a170f9a1a4"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a1da912deb1046ef7afc447a170f9a1a4">Nv::Blast::VecMath::sub</a></div><div class="ttdeci">NV_INLINE void sub(const float a[3], const float b[3], float r[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:67</div></div>
diff --git a/docs/source_docs/files/_nv_blast_memory_8h_source.html b/docs/source_docs/files/_nv_blast_memory_8h_source.html
index 6cde6ac..ba1ebe7 100755
--- a/docs/source_docs/files/_nv_blast_memory_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_memory_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_memory_8h_source.html','');}
<div class="title">NvBlastMemory.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_memory_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTMEMORY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTMEMORY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8"> 46</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(T value)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> (value + 0xF)&amp;~(T)0xF;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497"> 55</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(p)+offset);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#adc8df6573067847479e405b5162824ff"> 61</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(p)+offset);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> pointerOffset&lt;const void*&gt;(p, offset);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span>* <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> pointerOffset&lt;void*&gt;(p, offset);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542"> 81</a></span>&#160;<span class="preprocessor">#define NvBlastBlockData(_dataType, _name, _accessor) \</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">_dataType* _accessor() const \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> return (_dataType*)((uintptr_t)this + _name); \</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">uint32_t _name</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc"> 90</a></span>&#160;<span class="preprocessor">#define NvBlastBlockArrayData(_dataType, _name, _accessor, _sizeExpr) \</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">_dataType* _accessor() const \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> return (_dataType*)((uintptr_t)this + _name); \</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">uint32_t _accessor##ArraySize() const \</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> return _sizeExpr; \</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">uint32_t _name</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a6405c7730b3bae832e1883093fee3d5e"> 105</a></span>&#160;<span class="preprocessor">#define NvBlastCreateOffsetStart(_baseOffset) \</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">size_t _lastOffset = _baseOffset; \</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">size_t _lastSize = 0</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a1a2910b0e69957e23c05e09a3ceb0436"> 110</a></span>&#160;<span class="preprocessor">#define NvBlastCreateOffsetAlign16(_name, _size) \</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">_name = align16(_lastOffset + _lastSize); \</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">_lastOffset = _name; \</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">_lastSize = _size</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a924f54aafb03fdbd5a49693119fa86c2"> 116</a></span>&#160;<span class="preprocessor">#define NvBlastCreateOffsetEndAlign16() \</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">align16(_lastOffset + _lastSize)</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#include &lt;malloc.h&gt;</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) _alloca(x)</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#elif NV_LINUX || NV_ANDROID</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#include &lt;alloca.h&gt;</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#elif NV_APPLE_FAMILY</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#include &lt;alloca.h&gt;</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#include &lt;memory.h&gt;</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#elif NV_XBOXONE</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#include &lt;malloc.h&gt;</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#ab1f69315874a0e6acc5ab7f4f0f443ad"> 138</a></span>&#160;<span class="preprocessor">#define NvBlastAllocaAligned16(x) (void*)(((uintptr_t)PxAlloca(x + 0xF) + 0xF) &amp; ~(uintptr_t)0xF)</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTMEMORY_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a529b22b397b1d870e8a536be78c4e497"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">Nv::Blast::pointerOffset</a></div><div class="ttdeci">NV_INLINE T pointerOffset(void *p, ptrdiff_t offset)</div><div class="ttdef"><b>Definition:</b> NvBlastMemory.h:55</div></div>
+<a href="_nv_blast_memory_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTMEMORY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTMEMORY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8"> 46</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">align16</a>(T value)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> (value + 0xF)&amp;~(T)0xF;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497"> 55</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(p)+offset);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#adc8df6573067847479e405b5162824ff"> 61</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> T <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(p)+offset);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> pointerOffset&lt;const void*&gt;(p, offset);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span>* <a class="code" href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">pointerOffset</a>(<span class="keywordtype">void</span>* p, ptrdiff_t offset)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> pointerOffset&lt;void*&gt;(p, offset);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a3421677e17b73e6e0b7e3471fe6ad542"> 81</a></span>&#160;<span class="preprocessor">#define NvBlastBlockData(_dataType, _name, _accessor) \</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">_dataType* _accessor() const \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> return (_dataType*)((uintptr_t)this + _name); \</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">uint32_t _name</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a44bc8a89246b1e7d824a4dd3a6e08edc"> 90</a></span>&#160;<span class="preprocessor">#define NvBlastBlockArrayData(_dataType, _name, _accessor, _sizeExpr) \</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">_dataType* _accessor() const \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> return (_dataType*)((uintptr_t)this + _name); \</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">uint32_t _accessor##ArraySize() const \</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> return _sizeExpr; \</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">} \</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">uint32_t _name</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a6405c7730b3bae832e1883093fee3d5e"> 105</a></span>&#160;<span class="preprocessor">#define NvBlastCreateOffsetStart(_baseOffset) \</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">size_t _lastOffset = _baseOffset; \</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">size_t _lastSize = 0</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a1a2910b0e69957e23c05e09a3ceb0436"> 110</a></span>&#160;<span class="preprocessor">#define NvBlastCreateOffsetAlign16(_name, _size) \</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">_name = align16(_lastOffset + _lastSize); \</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">_lastOffset = _name; \</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">_lastSize = _size</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#a924f54aafb03fdbd5a49693119fa86c2"> 116</a></span>&#160;<span class="preprocessor">#define NvBlastCreateOffsetEndAlign16() \</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">align16(_lastOffset + _lastSize)</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#include &lt;malloc.h&gt;</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) _alloca(x)</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#elif NV_LINUX || NV_ANDROID</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#include &lt;alloca.h&gt;</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#elif NV_APPLE_FAMILY</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#include &lt;alloca.h&gt;</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#include &lt;memory.h&gt;</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#elif NV_XBOXONE</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#include &lt;malloc.h&gt;</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define NvBlastAlloca(x) alloca(x)</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="_nv_blast_memory_8h.html#ab1f69315874a0e6acc5ab7f4f0f443ad"> 138</a></span>&#160;<span class="preprocessor">#define NvBlastAllocaAligned16(x) (void*)(((uintptr_t)PxAlloca(x + 0xF) + 0xF) &amp; ~(uintptr_t)0xF)</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTMEMORY_H</span></div><div class="ttc" id="namespace_nv_1_1_blast_html_a529b22b397b1d870e8a536be78c4e497"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a529b22b397b1d870e8a536be78c4e497">Nv::Blast::pointerOffset</a></div><div class="ttdeci">NV_INLINE T pointerOffset(void *p, ptrdiff_t offset)</div><div class="ttdef"><b>Definition:</b> NvBlastMemory.h:55</div></div>
<div class="ttc" id="group__foundation_html_ga36a01a4a51968418a26b06da7e1ad5d0"><div class="ttname"><a href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a></div><div class="ttdeci">#define NV_INLINE</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:350</div></div>
<div class="ttc" id="namespace_nv_1_1_blast_html_accb2edeb4001041265ab7a90fa2975e8"><div class="ttname"><a href="namespace_nv_1_1_blast.html#accb2edeb4001041265ab7a90fa2975e8">Nv::Blast::align16</a></div><div class="ttdeci">NV_INLINE T align16(T value)</div><div class="ttdef"><b>Definition:</b> NvBlastMemory.h:46</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_preprocessor_8h_source.html b/docs/source_docs/files/_nv_blast_preprocessor_8h_source.html
index acf2d6b..a6670cf 100755
--- a/docs/source_docs/files/_nv_blast_preprocessor_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_preprocessor_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_preprocessor_8h_source.html'
<div class="title">NvBlastPreprocessor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_preprocessor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1"> 37</a></span>&#160;<span class="preprocessor">#define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTPREPROCESSOR_H</span></div><div class="ttc" id="_nv_preprocessor_8h_html"><div class="ttname"><a href="_nv_preprocessor_8h.html">NvPreprocessor.h</a></div></div>
+<a href="_nv_blast_preprocessor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPREPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1"> 37</a></span>&#160;<span class="preprocessor">#define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTPREPROCESSOR_H</span></div><div class="ttc" id="_nv_preprocessor_8h_html"><div class="ttname"><a href="_nv_preprocessor_8h.html">NvPreprocessor.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/source_docs/files/_nv_blast_preprocessor_internal_8h_source.html b/docs/source_docs/files/_nv_blast_preprocessor_internal_8h_source.html
index 18bfa05..a2e6c47 100755
--- a/docs/source_docs/files/_nv_blast_preprocessor_internal_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_preprocessor_internal_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_preprocessor_internal_8h_sou
<div class="title">NvBlastPreprocessorInternal.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_preprocessor_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPREPROCESSORINTERNAL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPREPROCESSORINTERNAL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a3dc70f5d8fc145cfbce26e8d3d31b1b4"> 39</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_ERROR(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a028ad449128603044a76c8db870e52c6"> 40</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_WARNING(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Warning, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#aa024c8130947e5bcd0418f7564c312b2"> 41</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_INFO(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Info, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a320ac0ab221d3132599e1d6f5b43ca42"> 42</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_DEBUG(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Debug, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a9c8d87fbc8fead08bdf59b3c68bcb173"> 46</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_CHECK_PARAMS (NV_DEBUG || NV_CHECKED)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if NVBLASTLL_CHECK_PARAMS</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define NVBLASTLL_CHECK(_expr, _logFn, _msg, _onFail) \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> if(!(_expr)) \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> if (_logFn) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> { _onFail; }; \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> } </span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#afcde65e0a048967e7acbc3d901f217cd"> 59</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_CHECK(_expr, _logFn, _msg, _onFail) NV_UNUSED(_logFn)</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifndef UINT32_MAX</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd"> 68</a></span>&#160;<span class="preprocessor">#define UINT32_MAX (std::numeric_limits&lt;uint32_t&gt;::max())</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTPREPROCESSORINTERNAL_H</span></div><div class="ttc" id="_nv_preprocessor_8h_html"><div class="ttname"><a href="_nv_preprocessor_8h.html">NvPreprocessor.h</a></div></div>
+<a href="_nv_blast_preprocessor_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPREPROCESSORINTERNAL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPREPROCESSORINTERNAL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a3dc70f5d8fc145cfbce26e8d3d31b1b4"> 39</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_ERROR(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a028ad449128603044a76c8db870e52c6"> 40</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_WARNING(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Warning, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#aa024c8130947e5bcd0418f7564c312b2"> 41</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_INFO(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Info, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a320ac0ab221d3132599e1d6f5b43ca42"> 42</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_LOG_DEBUG(_logFn, _msg) if (_logFn != nullptr) { _logFn(NvBlastMessage::Debug, _msg, __FILE__, __LINE__); } ((void)0)</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#a9c8d87fbc8fead08bdf59b3c68bcb173"> 46</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_CHECK_PARAMS (NV_DEBUG || NV_CHECKED)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if NVBLASTLL_CHECK_PARAMS</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define NVBLASTLL_CHECK(_expr, _logFn, _msg, _onFail) \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> if(!(_expr)) \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> if (_logFn) { _logFn(NvBlastMessage::Error, _msg, __FILE__, __LINE__); } \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> { _onFail; }; \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> } </span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#afcde65e0a048967e7acbc3d901f217cd"> 59</a></span>&#160;<span class="preprocessor">#define NVBLASTLL_CHECK(_expr, _logFn, _msg, _onFail) NV_UNUSED(_logFn)</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifndef UINT32_MAX</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="_nv_blast_preprocessor_internal_8h.html#ab5eb23180f7cc12b7d6c04a8ec067fdd"> 68</a></span>&#160;<span class="preprocessor">#define UINT32_MAX (std::numeric_limits&lt;uint32_t&gt;::max())</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTPREPROCESSORINTERNAL_H</span></div><div class="ttc" id="_nv_preprocessor_8h_html"><div class="ttname"><a href="_nv_preprocessor_8h.html">NvPreprocessor.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/source_docs/files/_nv_blast_profiler_8h_source.html b/docs/source_docs/files/_nv_blast_profiler_8h_source.html
index eab3b56..2917e0f 100755
--- a/docs/source_docs/files/_nv_blast_profiler_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_profiler_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_profiler_8h_source.html','')
<div class="title">NvBlastProfiler.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7"> 47</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7">~ProfilerCallback</a>() {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a96bc5661f2d7eae63a86fcd9f3e44b49">zoneEnd</a>() = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html">ProfilerDetail</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f"> 67</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Level</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc">LOW</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721">MEDIUM</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3"> 71</a></span>&#160; HIGH</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#a3c2afe6552b0023fd98b7ce957afd3ab">NvBlastProfilerSetCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a>* pcb);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#aba122faf07ce7b740efb6a9d7fb60893">NvBlastProfilerSetDetail</a>(<a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a48e8eda29ebed223a7d2283d5bb99ec6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">Nv::Blast::ProfilerCallback::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name)=0</div></div>
+<a href="_nv_blast_profiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPROFILER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPROFILER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">ProfilerCallback</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7"> 47</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7">~ProfilerCallback</a>() {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">zoneStart</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html#a96bc5661f2d7eae63a86fcd9f3e44b49">zoneEnd</a>() = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html">ProfilerDetail</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f"> 67</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Level</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc"> 69</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc">LOW</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721">MEDIUM</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3"> 71</a></span>&#160; HIGH</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#a3c2afe6552b0023fd98b7ce957afd3ab">NvBlastProfilerSetCallback</a>(<a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a>* pcb);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> <a class="code" href="_nv_blast_profiler_8h.html#aba122faf07ce7b740efb6a9d7fb60893">NvBlastProfilerSetDetail</a>(<a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a48e8eda29ebed223a7d2283d5bb99ec6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a48e8eda29ebed223a7d2283d5bb99ec6">Nv::Blast::ProfilerCallback::zoneStart</a></div><div class="ttdeci">virtual void zoneStart(const char *name)=0</div></div>
<div class="ttc" id="_nv_blast_profiler_8h_html_aba122faf07ce7b740efb6a9d7fb60893"><div class="ttname"><a href="_nv_blast_profiler_8h.html#aba122faf07ce7b740efb6a9d7fb60893">NvBlastProfilerSetDetail</a></div><div class="ttdeci">NVBLAST_API void NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::Level)</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a6440efe8476a42a30dc27223027a9dd7"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a6440efe8476a42a30dc27223027a9dd7">Nv::Blast::ProfilerCallback::~ProfilerCallback</a></div><div class="ttdeci">virtual ~ProfilerCallback()</div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html_a96bc5661f2d7eae63a86fcd9f3e44b49"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html#a96bc5661f2d7eae63a86fcd9f3e44b49">Nv::Blast::ProfilerCallback::zoneEnd</a></div><div class="ttdeci">virtual void zoneEnd()=0</div></div>
diff --git a/docs/source_docs/files/_nv_blast_profiler_internal_8h_source.html b/docs/source_docs/files/_nv_blast_profiler_internal_8h_source.html
index 769c838..ee29eef 100755
--- a/docs/source_docs/files/_nv_blast_profiler_internal_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_profiler_internal_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_profiler_internal_8h_source.
<div class="title">NvBlastProfilerInternal.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_profiler_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPROFILERINTERNAL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPROFILERINTERNAL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if NV_PROFILE || NV_CHECKED || NV_DEBUG</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> NvBlastProfilerBegin(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> NvBlastProfilerEnd(<span class="keyword">const</span> <span class="keywordtype">void</span>* name, <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a>* NvBlastProfilerGetCallback();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a> NvBlastProfilerGetDetail();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ProfileScope</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; ProfileScope(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">ProfilerDetail::Level</a> level) :m_name(name), m_level(level)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; NvBlastProfilerBegin(m_name, m_level);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ~ProfileScope()</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; NvBlastProfilerEnd(m_name, m_level);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_name;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">ProfilerDetail::Level</a> m_level;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_PREFIX &quot;Blast: &quot;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_BEGIN(name) NvBlastProfilerBegin(BLAST_PROFILE_PREFIX name, Nv::Blast::ProfilerDetail::HIGH)</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_END(name) NvBlastProfilerEnd(BLAST_PROFILE_PREFIX name, Nv::Blast::ProfilerDetail::HIGH)</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE(name, detail) Nv::Blast::ProfileScope NV_CONCAT(_scope,__LINE__) (BLAST_PROFILE_PREFIX name, detail)</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_L(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::LOW)</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_M(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::MEDIUM)</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_H(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::HIGH)</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a464986f2cc89929ef0aa3c2cfe64c65c"> 83</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_BEGIN(name) </span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a653728cfdd79299f6fe72f71eb8c5590"> 84</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_END(name)</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#aaba578d5cd160859cd514c33ac6171a5"> 85</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_L(name)</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a09c365a3a48c753e60b5dfec0a991eb9"> 86</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_M(name)</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a7383e4693e7d6d980e604ca77d4020e7"> 87</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_H(name)</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_profiler_detail_html_a06be79d41391dfde43f6aa02866a3c1f"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a></div><div class="ttdeci">Level</div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:67</div></div>
+<a href="_nv_blast_profiler_internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPROFILERINTERNAL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPROFILERINTERNAL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_8h.html">NvBlastProfiler.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if NV_PROFILE || NV_CHECKED || NV_DEBUG</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> NvBlastProfilerBegin(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <span class="keywordtype">void</span> NvBlastProfilerEnd(<span class="keyword">const</span> <span class="keywordtype">void</span>* name, <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<a class="code" href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a>* NvBlastProfilerGetCallback();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a> NvBlastProfilerGetDetail();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>ProfileScope</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; ProfileScope(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">ProfilerDetail::Level</a> level) :m_name(name), m_level(level)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; NvBlastProfilerBegin(m_name, m_level);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ~ProfileScope()</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; NvBlastProfilerEnd(m_name, m_level);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_name;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">ProfilerDetail::Level</a> m_level;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;};</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_PREFIX &quot;Blast: &quot;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_BEGIN(name) NvBlastProfilerBegin(BLAST_PROFILE_PREFIX name, Nv::Blast::ProfilerDetail::HIGH)</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_END(name) NvBlastProfilerEnd(BLAST_PROFILE_PREFIX name, Nv::Blast::ProfilerDetail::HIGH)</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE(name, detail) Nv::Blast::ProfileScope NV_CONCAT(_scope,__LINE__) (BLAST_PROFILE_PREFIX name, detail)</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_L(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::LOW)</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_M(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::MEDIUM)</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_H(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::HIGH)</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a464986f2cc89929ef0aa3c2cfe64c65c"> 83</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_BEGIN(name) </span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a653728cfdd79299f6fe72f71eb8c5590"> 84</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_ZONE_END(name)</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#aaba578d5cd160859cd514c33ac6171a5"> 85</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_L(name)</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a09c365a3a48c753e60b5dfec0a991eb9"> 86</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_M(name)</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_nv_blast_profiler_internal_8h.html#a7383e4693e7d6d980e604ca77d4020e7"> 87</a></span>&#160;<span class="preprocessor">#define BLAST_PROFILE_SCOPE_H(name)</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_profiler_detail_html_a06be79d41391dfde43f6aa02866a3c1f"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f">Nv::Blast::ProfilerDetail::Level</a></div><div class="ttdeci">Level</div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:67</div></div>
<div class="ttc" id="_nv_blast_preprocessor_8h_html_ae5c980f1b9848025a2fefa05a9d3bce1"><div class="ttname"><a href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a></div><div class="ttdeci">#define NVBLAST_API</div><div class="ttdef"><b>Definition:</b> NvBlastPreprocessor.h:37</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_profiler_callback_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_profiler_callback.html">Nv::Blast::ProfilerCallback</a></div><div class="ttdef"><b>Definition:</b> NvBlastProfiler.h:44</div></div>
<div class="ttc" id="namespace_nv_html"><div class="ttname"><a href="namespace_nv.html">Nv</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:37</div></div>
diff --git a/docs/source_docs/files/_nv_blast_px_callbacks_8h_source.html b/docs/source_docs/files/_nv_blast_px_callbacks_8h_source.html
index 4d4dc84..0fdb408 100755
--- a/docs/source_docs/files/_nv_blast_px_callbacks_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_px_callbacks_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_px_callbacks_8h_source.html'
<div class="title">NvBlastPxCallbacks.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_px_callbacks_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxErrorCallback.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxAllocatorCallback.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce"> 41</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> physx::PxErrorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce">NvBlastGetPxErrorCallback</a>()</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxErrorCallbackWrapper : <span class="keyword">public</span> physx::PxErrorCallback</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(physx::PxErrorCode::Enum code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a8a2db85363a6de25ef3b1c7576cf5870">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>((<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Nv::Blast::ErrorCode::Enum</a>)code, message, file, line);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> PxErrorCallbackWrapper wrapper;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c"> 54</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> physx::PxAllocatorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c">NvBlastGetPxAllocatorCallback</a>()</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">class </span>PxAllocatorCallbackWrapper : <span class="keyword">public</span> physx::PxAllocatorCallback</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* allocate(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, typeName, filename, line);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(<span class="keywordtype">void</span>* ptr)<span class="keyword"> override</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">static</span> PxAllocatorCallbackWrapper wrapper;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTPXCALLBACKS_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
+<a href="_nv_blast_px_callbacks_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPXCALLBACKS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxErrorCallback.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxAllocatorCallback.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce"> 41</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> physx::PxErrorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#a0bbd9bd6f4dfff2d8fad6fe854912cce">NvBlastGetPxErrorCallback</a>()</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">class </span>PxErrorCallbackWrapper : <span class="keyword">public</span> physx::PxErrorCallback</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reportError(physx::PxErrorCode::Enum code, <span class="keyword">const</span> <span class="keywordtype">char</span>* message, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a8a2db85363a6de25ef3b1c7576cf5870">NvBlastGlobalGetErrorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">reportError</a>((<a class="code" href="struct_nv_1_1_blast_1_1_error_code.html#a626314fe23bf1efd003362a7b74523ab">Nv::Blast::ErrorCode::Enum</a>)code, message, file, line);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> PxErrorCallbackWrapper wrapper;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c"> 54</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> physx::PxAllocatorCallback&amp; <a class="code" href="_nv_blast_px_callbacks_8h.html#ac5c506d1e1b09d6d295420e53a56f74c">NvBlastGetPxAllocatorCallback</a>()</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">class </span>PxAllocatorCallbackWrapper : <span class="keyword">public</span> physx::PxAllocatorCallback</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span>* allocate(<span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> line)<span class="keyword"> override</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">allocate</a>(size, typeName, filename, line);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(<span class="keywordtype">void</span>* ptr)<span class="keyword"> override</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#a28e807e18aff353853da796bc5a5b8dd">NvBlastGlobalGetAllocatorCallback</a>()-&gt;<a class="code" href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">deallocate</a>(ptr);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">static</span> PxAllocatorCallbackWrapper wrapper;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> wrapper;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTPXCALLBACKS_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_aaaca2075d5aed1f8d276f5ecf090bc72"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#aaaca2075d5aed1f8d276f5ecf090bc72">Nv::Blast::AllocatorCallback::deallocate</a></div><div class="ttdeci">virtual void deallocate(void *ptr)=0</div><div class="ttdoc">Frees memory previously allocated by allocate(). </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_allocator_callback_html_ae0303f5b6c3993251bdf790f43ef4e90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_allocator_callback.html#ae0303f5b6c3993251bdf790f43ef4e90">Nv::Blast::AllocatorCallback::allocate</a></div><div class="ttdeci">virtual void * allocate(size_t size, const char *typeName, const char *filename, int line)=0</div><div class="ttdoc">Allocates size bytes of memory, which must be 16-byte aligned. </div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_error_callback_html_a078419fe6350d27550989af5cf45ad44"><div class="ttname"><a href="class_nv_1_1_blast_1_1_error_callback.html#a078419fe6350d27550989af5cf45ad44">Nv::Blast::ErrorCallback::reportError</a></div><div class="ttdeci">virtual void reportError(ErrorCode::Enum code, const char *message, const char *file, int line)=0</div><div class="ttdoc">Reports an error code. </div></div>
<div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_px_shared_helpers_8h_source.html b/docs/source_docs/files/_nv_blast_px_shared_helpers_8h_source.html
index 30ce23e..b82c9d5 100644
--- a/docs/source_docs/files/_nv_blast_px_shared_helpers_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_px_shared_helpers_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_px_shared_helpers_8h_source.
<div class="title">NvBlastPxSharedHelpers.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_px_shared_helpers_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPXSHAREDTYPESHELPERS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPXSHAREDTYPESHELPERS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec4.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxTransform.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;PxMat33.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;PxMat44.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;PxBounds3.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#ac2802cb698cab8aef5031c4061de67be"> 42</a></span>&#160;<span class="preprocessor">#define WCast(type, name) reinterpret_cast&lt;type&gt;(name)</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#afa28c38e1c7cdd53c151a377fee42adf"> 43</a></span>&#160;<span class="preprocessor">#define RCast(type, name) reinterpret_cast&lt;const type&gt;(name)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90"> 45</a></span>&#160;<span class="preprocessor">#define CONVERT(BlastType, PxSharedType) \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> static inline PxSharedType&amp; toPxShared(BlastType&amp; v) \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> return WCast(PxSharedType&amp;, v); \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> static inline const PxSharedType&amp; toPxShared(const BlastType&amp; v) \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> return RCast(PxSharedType&amp;, v); \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> static inline const BlastType&amp; fromPxShared(const PxSharedType&amp; v) \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> return RCast(BlastType&amp;, v); \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> static inline BlastType&amp; fromPxShared(PxSharedType&amp; v) \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> return WCast(BlastType&amp;, v); \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> static inline PxSharedType* toPxShared(BlastType* v) \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> return WCast(PxSharedType*, v); \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> static inline const PxSharedType* toPxShared(const BlastType* v) \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> return RCast(PxSharedType*, v); \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> static inline const BlastType* fromPxShared(const PxSharedType* v) \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> return RCast(BlastType*, v); \</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> static inline BlastType* fromPxShared(PxSharedType* v) \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> return WCast(BlastType*, v); \</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> }</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>, physx::PxVec2)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, physx::PxVec3)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, physx::PxVec4)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, physx::PxQuat)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>, physx::PxTransform)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>, physx::PxPlane)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, physx::PxMat33)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_mat44.html">NvcMat44</a>, physx::PxMat44)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>, physx::PxBounds3)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>) == <span class="keyword">sizeof</span>(physx::PxVec2));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec2, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec2, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>) == <span class="keyword">sizeof</span>(physx::PxVec3));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec3, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec3, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec3, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>) == <span class="keyword">sizeof</span>(physx::PxVec4));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>) == <span class="keyword">sizeof</span>(physx::PxQuat));</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>) == <span class="keyword">sizeof</span>(physx::PxTransform));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>, p) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxTransform, p));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>, q) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxTransform, q));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>) == <span class="keyword">sizeof</span>(physx::PxPlane));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>, n) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxPlane, n));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>, d) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxPlane, d));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>) == <span class="keyword">sizeof</span>(physx::PxMat33));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, column0) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxMat33, column0));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, column1) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxMat33, column1));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, column2) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxMat33, column2));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>) == <span class="keyword">sizeof</span>(physx::PxBounds3));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>, minimum) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxBounds3, minimum));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>, maximum) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxBounds3, maximum));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// Some basic operators</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615"> 129</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v2)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + v2.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>, v1.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + v2.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> };</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a2773eff428e48a268aa4003ebb340a7a"> 133</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a2773eff428e48a268aa4003ebb340a7a">operator-</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v2)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> - v2.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>, v1.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> - v2.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> };</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa0b8fc3a677dedd13c46f7c4eac33259"> 137</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + f };</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a7c744526ad68feeb5d217d582eb1dd56"> 141</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + f };</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1"> 145</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> * f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> * f };</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#abc8762e6469df555d6477e68aa8e3f9d"> 149</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> * f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> * f };</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4"> 153</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4">operator/</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> / f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> / f };</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa5fa673b37b2db41c230aa6edb1cc6da"> 157</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5fa673b37b2db41c230aa6edb1cc6da">dot</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v2)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> v1.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> * v2.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + v1.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> * v2.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa5f908bb0eedadc47ec8e17557bc5bf1"> 161</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5f908bb0eedadc47ec8e17557bc5bf1">neg</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span>{ -v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>, -v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> };</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a80b9807516341338eb840e4ece0668f0"> 166</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a12d23a9fad486746aeeb5ac8a2f7abd4"> 170</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a2773eff428e48a268aa4003ebb340a7a">operator-</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a66d85170d296c5aa3b6b75ace201a493"> 174</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a2a585796eda22cbb8cd440ca700ae089"> 178</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4">operator/</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> / v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> / v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> / v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a3aa341969b2cf7a1c4db0c5a6edc48c8"> 182</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + f };</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#ab755eb4282a4cba929ea5f92ba697663"> 186</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + f };</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#abd56d8b3f515161d33d990bc578b1502"> 190</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * f };</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a507b474809ef6f3d5c0bbb3f33af5381"> 194</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * f };</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a3611b94ab71c272ff7bec5230474602e"> 198</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4">operator/</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> / f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> / f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> / f };</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa4dcbf87781f9fd379ebf5d7cab841ec"> 202</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5fa673b37b2db41c230aa6edb1cc6da">dot</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#af852abdc235f1daf80b3cf2f46fd7cf2"> 206</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5f908bb0eedadc47ec8e17557bc5bf1">neg</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span>{ -v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, -v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, -v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTPHYSXTYPESHELPERS_H</span></div><div class="ttc" id="_nv_blast_px_shared_helpers_8h_html_afc0b58a2c7725aa2708c04b0fdaa9615"><div class="ttname"><a href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a></div><div class="ttdeci">NvcVec2 operator+(const NvcVec2 &amp;v1, const NvcVec2 &amp;v2)</div><div class="ttdef"><b>Definition:</b> NvBlastPxSharedHelpers.h:129</div></div>
+<a href="_nv_blast_px_shared_helpers_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTPXSHAREDTYPESHELPERS_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTPXSHAREDTYPESHELPERS_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_c_types_8h.html">NvCTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;PxVec2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;PxVec3.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;PxVec4.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;PxTransform.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;PxPlane.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;PxMat33.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;PxMat44.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;PxBounds3.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#ac2802cb698cab8aef5031c4061de67be"> 42</a></span>&#160;<span class="preprocessor">#define WCast(type, name) reinterpret_cast&lt;type&gt;(name)</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#afa28c38e1c7cdd53c151a377fee42adf"> 43</a></span>&#160;<span class="preprocessor">#define RCast(type, name) reinterpret_cast&lt;const type&gt;(name)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90"> 45</a></span>&#160;<span class="preprocessor">#define CONVERT(BlastType, PxSharedType) \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> static inline PxSharedType&amp; toPxShared(BlastType&amp; v) \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> return WCast(PxSharedType&amp;, v); \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> static inline const PxSharedType&amp; toPxShared(const BlastType&amp; v) \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> return RCast(PxSharedType&amp;, v); \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> static inline const BlastType&amp; fromPxShared(const PxSharedType&amp; v) \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> return RCast(BlastType&amp;, v); \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> static inline BlastType&amp; fromPxShared(PxSharedType&amp; v) \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> return WCast(BlastType&amp;, v); \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> static inline PxSharedType* toPxShared(BlastType* v) \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> return WCast(PxSharedType*, v); \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> static inline const PxSharedType* toPxShared(const BlastType* v) \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> return RCast(PxSharedType*, v); \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> static inline const BlastType* fromPxShared(const PxSharedType* v) \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> return RCast(BlastType*, v); \</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> static inline BlastType* fromPxShared(PxSharedType* v) \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> return WCast(BlastType*, v); \</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> }</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>, physx::PxVec2)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, physx::PxVec3)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, physx::PxVec4)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, physx::PxQuat)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>, physx::PxTransform)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>, physx::PxPlane)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, physx::PxMat33)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_mat44.html">NvcMat44</a>, physx::PxMat44)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#adc116f735d878f2c25fef74662d8ba90">CONVERT</a>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>, physx::PxBounds3)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>) == <span class="keyword">sizeof</span>(physx::PxVec2));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec2, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec2.html">NvcVec2</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec2, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>) == <span class="keyword">sizeof</span>(physx::PxVec3));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec3, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec3, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec3, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>) == <span class="keyword">sizeof</span>(physx::PxVec4));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_vec4.html">NvcVec4</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxVec4, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>) == <span class="keyword">sizeof</span>(physx::PxQuat));</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#a419978af43d009c4b093b0f4ccc9de08">z</a>));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_quat.html">NvcQuat</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxQuat, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>) == <span class="keyword">sizeof</span>(physx::PxTransform));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>, p) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxTransform, p));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_transform.html">NvcTransform</a>, q) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxTransform, q));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>) == <span class="keyword">sizeof</span>(physx::PxPlane));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>, n) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxPlane, n));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_plane.html">NvcPlane</a>, d) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxPlane, d));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>) == <span class="keyword">sizeof</span>(physx::PxMat33));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, column0) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxMat33, column0));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, column1) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxMat33, column1));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_mat33.html">NvcMat33</a>, column2) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxMat33, column2));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>) == <span class="keyword">sizeof</span>(physx::PxBounds3));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>, minimum) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxBounds3, minimum));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<a class="code" href="_nv_blast_px_shared_helpers_8h.html#a465b1f9dcb9af35d67ec3be16a6e8350">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>, maximum) == <a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(physx::PxBounds3, maximum));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// Some basic operators</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615"> 129</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v2)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + v2.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>, v1.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + v2.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> };</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a2773eff428e48a268aa4003ebb340a7a"> 133</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a2773eff428e48a268aa4003ebb340a7a">operator-</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v2)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> - v2.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>, v1.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> - v2.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> };</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa0b8fc3a677dedd13c46f7c4eac33259"> 137</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + f };</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a7c744526ad68feeb5d217d582eb1dd56"> 141</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> + f };</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1"> 145</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> * f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> * f };</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#abc8762e6469df555d6477e68aa8e3f9d"> 149</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> * f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> * f };</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4"> 153</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4">operator/</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> / f, v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> / f };</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa5fa673b37b2db41c230aa6edb1cc6da"> 157</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5fa673b37b2db41c230aa6edb1cc6da">dot</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v2)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> v1.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> * v2.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a> + v1.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> * v2.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa5f908bb0eedadc47ec8e17557bc5bf1"> 161</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5f908bb0eedadc47ec8e17557bc5bf1">neg</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>&amp; v)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span>{ -v.<a class="code" href="struct_nvc_vec2.html#ae4a6f9e53428ccf99829db890b938aad">x</a>, -v.<a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a> };</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a80b9807516341338eb840e4ece0668f0"> 166</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a12d23a9fad486746aeeb5ac8a2f7abd4"> 170</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a2773eff428e48a268aa4003ebb340a7a">operator-</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> - v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> - v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> - v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a66d85170d296c5aa3b6b75ace201a493"> 174</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a2a585796eda22cbb8cd440ca700ae089"> 178</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4">operator/</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span>{ v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> / v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> / v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> / v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a3aa341969b2cf7a1c4db0c5a6edc48c8"> 182</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + f };</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#ab755eb4282a4cba929ea5f92ba697663"> 186</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> + f };</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#abd56d8b3f515161d33d990bc578b1502"> 190</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * f };</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a507b474809ef6f3d5c0bbb3f33af5381"> 194</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator*</a>(<span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * f };</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#a3611b94ab71c272ff7bec5230474602e"> 198</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa8e8475ea48862fbf67c826a408cd0d4">operator/</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v, <span class="keywordtype">float</span> f)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span>{ v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> / f, v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> / f, v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> / f };</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#aa4dcbf87781f9fd379ebf5d7cab841ec"> 202</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5fa673b37b2db41c230aa6edb1cc6da">dot</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v1, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v2)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> v1.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a> + v1.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> * v2.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a> + v1.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> * v2.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="_nv_blast_px_shared_helpers_8h.html#af852abdc235f1daf80b3cf2f46fd7cf2"> 206</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="_nv_blast_px_shared_helpers_8h.html#aa5f908bb0eedadc47ec8e17557bc5bf1">neg</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>&amp; v)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span>{ -v.<a class="code" href="struct_nvc_vec3.html#a1fb754591e800bd36dcb2223216644fb">x</a>, -v.<a class="code" href="struct_nvc_vec3.html#ab94f8fe1d24d91b942bc6e87e76c0fc0">y</a>, -v.<a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a> };</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTPHYSXTYPESHELPERS_H</span></div><div class="ttc" id="_nv_blast_px_shared_helpers_8h_html_afc0b58a2c7725aa2708c04b0fdaa9615"><div class="ttname"><a href="_nv_blast_px_shared_helpers_8h.html#afc0b58a2c7725aa2708c04b0fdaa9615">operator+</a></div><div class="ttdeci">NvcVec2 operator+(const NvcVec2 &amp;v1, const NvcVec2 &amp;v2)</div><div class="ttdef"><b>Definition:</b> NvBlastPxSharedHelpers.h:129</div></div>
<div class="ttc" id="struct_nvc_vec4_html"><div class="ttname"><a href="struct_nvc_vec4.html">NvcVec4</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:55</div></div>
<div class="ttc" id="bt_vector3_8h_html_a9ac999fc46ed7720280dca03ad1e4e62"><div class="ttname"><a href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a></div><div class="ttdeci">SIMD_FORCE_INLINE const btScalar &amp; x() const</div><div class="ttdoc">Return the x value. </div><div class="ttdef"><b>Definition:</b> btVector3.h:275</div></div>
<div class="ttc" id="struct_nvc_vec3_html_a1702951e0e9b57bb36780a4d241dd7c7"><div class="ttname"><a href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">NvcVec3::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:51</div></div>
diff --git a/docs/source_docs/files/_nv_blast_support_graph_8h_source.html b/docs/source_docs/files/_nv_blast_support_graph_8h_source.html
index 48d7375..b71eb31 100755
--- a/docs/source_docs/files/_nv_blast_support_graph_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_support_graph_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_support_graph_8h_source.html
<div class="title">NvBlastSupportGraph.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_support_graph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTSUPPORTGRAPH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTSUPPORTGRAPH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_support_graph.html"> 76</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1"> 81</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_chunkIndicesOffset, getChunkIndices, m_nodeCount);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_adjacencyPartitionOffset, getAdjacencyPartition, m_nodeCount + 1);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_adjacentNodeIndicesOffset, getAdjacentNodeIndices, getAdjacencyPartition()[m_nodeCount]);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_adjacentBondIndicesOffset, getAdjacentBondIndices, getAdjacencyPartition()[m_nodeCount]);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce">findBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1) <span class="keyword">const</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce"> 129</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce">SupportGraph::findBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1)<span class="keyword"> const</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> uint32_t* adjacencyPartition = getAdjacencyPartition();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> uint32_t* adjacentNodeIndices = getAdjacentNodeIndices();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> uint32_t* adjacentBondIndices = getAdjacentBondIndices();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Iterate through all neighbors of nodeIndex0 chunk</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (uint32_t i = adjacencyPartition[nodeIndex0]; i &lt; adjacencyPartition[nodeIndex0 + 1]; i++)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (adjacentNodeIndices[i] == nodeIndex1)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> adjacentBondIndices[i];</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTSUPPORTGRAPH_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_support_graph_html_a014cef22dc0e4821bb9cf3f4909c2d84"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">Nv::Blast::SupportGraph::NvBlastBlockArrayData</a></div><div class="ttdeci">NvBlastBlockArrayData(uint32_t, m_chunkIndicesOffset, getChunkIndices, m_nodeCount)</div></div>
+<a href="_nv_blast_support_graph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTSUPPORTGRAPH_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTSUPPORTGRAPH_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_memory_8h.html">NvBlastMemory.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_support_graph.html"> 76</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html">SupportGraph</a></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1"> 81</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a8e25ca3c8d3213c3737e53b7094431d1">m_nodeCount</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_chunkIndicesOffset, getChunkIndices, m_nodeCount);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_adjacencyPartitionOffset, getAdjacencyPartition, m_nodeCount + 1);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_adjacentNodeIndicesOffset, getAdjacentNodeIndices, getAdjacencyPartition()[m_nodeCount]);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">NvBlastBlockArrayData</a>(uint32_t, m_adjacentBondIndicesOffset, getAdjacentBondIndices, getAdjacencyPartition()[m_nodeCount]);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce">findBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1) <span class="keyword">const</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce"> 129</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce">SupportGraph::findBond</a>(uint32_t nodeIndex0, uint32_t nodeIndex1)<span class="keyword"> const</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> uint32_t* adjacencyPartition = getAdjacencyPartition();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> uint32_t* adjacentNodeIndices = getAdjacentNodeIndices();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> uint32_t* adjacentBondIndices = getAdjacentBondIndices();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Iterate through all neighbors of nodeIndex0 chunk</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (uint32_t i = adjacencyPartition[nodeIndex0]; i &lt; adjacencyPartition[nodeIndex0 + 1]; i++)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (adjacentNodeIndices[i] == nodeIndex1)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> adjacentBondIndices[i];</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> invalidIndex&lt;uint32_t&gt;();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTSUPPORTGRAPH_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_support_graph_html_a014cef22dc0e4821bb9cf3f4909c2d84"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_support_graph.html#a014cef22dc0e4821bb9cf3f4909c2d84">Nv::Blast::SupportGraph::NvBlastBlockArrayData</a></div><div class="ttdeci">NvBlastBlockArrayData(uint32_t, m_chunkIndicesOffset, getChunkIndices, m_nodeCount)</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_support_graph_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_support_graph.html">Nv::Blast::SupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastSupportGraph.h:76</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_support_graph_html_a6af3de1ef6dc313fa28ba9eb494a4dce"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_support_graph.html#a6af3de1ef6dc313fa28ba9eb494a4dce">Nv::Blast::SupportGraph::findBond</a></div><div class="ttdeci">uint32_t findBond(uint32_t nodeIndex0, uint32_t nodeIndex1) const</div><div class="ttdef"><b>Definition:</b> NvBlastSupportGraph.h:129</div></div>
<div class="ttc" id="_nv_blast_index_fns_8h_html"><div class="ttname"><a href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_time_8h_source.html b/docs/source_docs/files/_nv_blast_time_8h_source.html
index 20c4f7d..a9cf6e0 100755
--- a/docs/source_docs/files/_nv_blast_time_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_time_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_time_8h_source.html','');});
<div class="title">NvBlastTime.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_time_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTIME_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTIME_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_time.html">Time</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a101e7808be5a2daad0f2b0f9298dca2a"> 43</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_time.html#a101e7808be5a2daad0f2b0f9298dca2a">Time</a>() : m_lastTickCount(getTimeTicks()) {}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a4f077e2652ca099569600e76a12501b6"> 45</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_time.html#a4f077e2652ca099569600e76a12501b6">getElapsedTicks</a>()</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">const</span> int64_t lastTickCount = m_lastTickCount;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_lastTickCount = getTimeTicks();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> m_lastTickCount - lastTickCount;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a64fc1a3fec52eb332e2879cdba37694d"> 52</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_time.html#a64fc1a3fec52eb332e2879cdba37694d">peekElapsedTicks</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> getTimeTicks() - m_lastTickCount;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526"> 57</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">getLastTickCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> m_lastTickCount;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#aeced1fdeb83d4ce1ef759648577769d0"> 62</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="class_nv_1_1_blast_1_1_time.html#aeced1fdeb83d4ce1ef759648577769d0">seconds</a>(int64_t ticks)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> s_secondsPerTick * ticks;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; int64_t getTimeTicks() <span class="keyword">const</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> getTickDuration();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; int64_t m_lastTickCount;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> s_secondsPerTick;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_include_windows_8h.html">NvBlastIncludeWindows.h</a>&quot;</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> int64_t Nv::Blast::Time::getTimeTicks()<span class="keyword"> const</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; LARGE_INTEGER a;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; QueryPerformanceCounter(&amp;a);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> a.QuadPart;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">double</span> Nv::Blast::Time::getTickDuration()</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; LARGE_INTEGER a;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; QueryPerformanceFrequency(&amp;a);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> 1.0 / (double)a.QuadPart;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#elif NV_UNIX_FAMILY</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> int64_t Nv::Blast::Time::getTimeTicks()<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">struct </span>timespec mCurrTimeInt;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; clock_gettime(CLOCK_REALTIME, &amp;mCurrTimeInt);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> (static_cast&lt;int64_t&gt;(mCurrTimeInt.tv_sec) * 1000000000) + (<span class="keyword">static_cast&lt;</span>int64_t<span class="keyword">&gt;</span>(mCurrTimeInt.tv_nsec));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">double</span> Nv::Blast::Time::getTickDuration()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> 1.e-9;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#include &quot;ps4/NvBlastTimePS4.h&quot;</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTTIME_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_time_html_a440cea5bd7d09b6313189bb11ccfe526"><div class="ttname"><a href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">Nv::Blast::Time::getLastTickCount</a></div><div class="ttdeci">int64_t getLastTickCount() const</div><div class="ttdef"><b>Definition:</b> NvBlastTime.h:57</div></div>
+<a href="_nv_blast_time_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTIME_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTIME_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_time.html">Time</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a101e7808be5a2daad0f2b0f9298dca2a"> 43</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_time.html#a101e7808be5a2daad0f2b0f9298dca2a">Time</a>() : m_lastTickCount(getTimeTicks()) {}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a4f077e2652ca099569600e76a12501b6"> 45</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_time.html#a4f077e2652ca099569600e76a12501b6">getElapsedTicks</a>()</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">const</span> int64_t lastTickCount = m_lastTickCount;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_lastTickCount = getTimeTicks();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> m_lastTickCount - lastTickCount;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a64fc1a3fec52eb332e2879cdba37694d"> 52</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_time.html#a64fc1a3fec52eb332e2879cdba37694d">peekElapsedTicks</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> getTimeTicks() - m_lastTickCount;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526"> 57</a></span>&#160; int64_t <a class="code" href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">getLastTickCount</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> m_lastTickCount;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_time.html#aeced1fdeb83d4ce1ef759648577769d0"> 62</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="class_nv_1_1_blast_1_1_time.html#aeced1fdeb83d4ce1ef759648577769d0">seconds</a>(int64_t ticks)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> s_secondsPerTick * ticks;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; int64_t getTimeTicks() <span class="keyword">const</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> getTickDuration();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; int64_t m_lastTickCount;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> s_secondsPerTick;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_include_windows_8h.html">NvBlastIncludeWindows.h</a>&quot;</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> int64_t Nv::Blast::Time::getTimeTicks()<span class="keyword"> const</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; LARGE_INTEGER a;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; QueryPerformanceCounter(&amp;a);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> a.QuadPart;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">double</span> Nv::Blast::Time::getTickDuration()</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; LARGE_INTEGER a;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; QueryPerformanceFrequency(&amp;a);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> 1.0 / (double)a.QuadPart;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#elif NV_UNIX_FAMILY</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> int64_t Nv::Blast::Time::getTimeTicks()<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">struct </span>timespec mCurrTimeInt;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; clock_gettime(CLOCK_REALTIME, &amp;mCurrTimeInt);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> (static_cast&lt;int64_t&gt;(mCurrTimeInt.tv_sec) * 1000000000) + (<span class="keyword">static_cast&lt;</span>int64_t<span class="keyword">&gt;</span>(mCurrTimeInt.tv_nsec));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">double</span> Nv::Blast::Time::getTickDuration()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> 1.e-9;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#elif NV_PS4</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#include &quot;ps4/NvBlastTimePS4.h&quot;</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTTIME_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_time_html_a440cea5bd7d09b6313189bb11ccfe526"><div class="ttname"><a href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">Nv::Blast::Time::getLastTickCount</a></div><div class="ttdeci">int64_t getLastTickCount() const</div><div class="ttdef"><b>Definition:</b> NvBlastTime.h:57</div></div>
<div class="ttc" id="_nv_blast_include_windows_8h_html"><div class="ttname"><a href="_nv_blast_include_windows_8h.html">NvBlastIncludeWindows.h</a></div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_time_html_aeced1fdeb83d4ce1ef759648577769d0"><div class="ttname"><a href="class_nv_1_1_blast_1_1_time.html#aeced1fdeb83d4ce1ef759648577769d0">Nv::Blast::Time::seconds</a></div><div class="ttdeci">static double seconds(int64_t ticks)</div><div class="ttdef"><b>Definition:</b> NvBlastTime.h:62</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_8h_source.html b/docs/source_docs/files/_nv_blast_tk_8h_source.html
index 7103fef..772fdfb 100755
--- a/docs/source_docs/files/_nv_blast_tk_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_8h_source.html','');});
<div class="title">NvBlastTk.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTK_H</span></div><div class="ttc" id="_nv_blast_tk_family_8h_html"><div class="ttname"><a href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a></div></div>
+<a href="_nv_blast_tk_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a>&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTK_H</span></div><div class="ttc" id="_nv_blast_tk_family_8h_html"><div class="ttname"><a href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_framework_8h_html"><div class="ttname"><a href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_actor_8h_html"><div class="ttname"><a href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_group_8h_html"><div class="ttname"><a href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_actor_8h_source.html b/docs/source_docs/files/_nv_blast_tk_actor_8h_source.html
index d4c7d9a..8158b5d 100755
--- a/docs/source_docs/files/_nv_blast_tk_actor_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_actor_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_actor_8h_source.html','')
<div class="title">NvBlastTkActor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a3f6fc8b1d10cbcadc0accdb50d86ca50">getActorLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a36af13fc7fc1bcc12d329db6278c9b50">getFamily</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9f89112a12e4183432c6aa827ea97875">getIndex</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a81f07e9885669b62c6b5400e6b322e3d">getGroup</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a848142c7567f5eec053a3c9e8520d131">removeFromGroup</a>() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa9bfedd2a888e9cfdf99f83047501a41">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a8893ef15edb5ed7878f636438df97274">getVisibleChunkCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a78c00a774558ed4f74b980d2f66d8548">getVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a1b43f234c8c6f831db35758d76cc0e09">getGraphNodeCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ada97e22b4b93d924b3f70562cb727228">getGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9cc9071ff62db5b24f11716b15c2c369">getBondHealths</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a16de12b18d7b6b06413b58f1a0180e6d">getSplitMaxActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a2079bb8ac6d223c5941357994e8ae522">isPending</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a4969506ea54271b432ee5de4145779a6">damage</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aee5e7fdfa7cd0b33f5ba92168841d4b2">generateFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa02c42add8033877003cd907a0818785">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ae1582f709880a58d222530b6095da48e">getJointCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ad4f8ce52518ca4654e1c16485fb13d8f">getJoints</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>** joints, uint32_t jointsSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a834a7e291fd82ee3b36ad0fc6f349399">isBoundToWorld</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;};</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKACTOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_actor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKACTOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a3f6fc8b1d10cbcadc0accdb50d86ca50">getActorLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a36af13fc7fc1bcc12d329db6278c9b50">getFamily</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9f89112a12e4183432c6aa827ea97875">getIndex</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a81f07e9885669b62c6b5400e6b322e3d">getGroup</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a848142c7567f5eec053a3c9e8520d131">removeFromGroup</a>() = 0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa9bfedd2a888e9cfdf99f83047501a41">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a8893ef15edb5ed7878f636438df97274">getVisibleChunkCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a78c00a774558ed4f74b980d2f66d8548">getVisibleChunkIndices</a>(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a1b43f234c8c6f831db35758d76cc0e09">getGraphNodeCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ada97e22b4b93d924b3f70562cb727228">getGraphNodeIndices</a>(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a9cc9071ff62db5b24f11716b15c2c369">getBondHealths</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a16de12b18d7b6b06413b58f1a0180e6d">getSplitMaxActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a2079bb8ac6d223c5941357994e8ae522">isPending</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a4969506ea54271b432ee5de4145779a6">damage</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aee5e7fdfa7cd0b33f5ba92168841d4b2">generateFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#aa02c42add8033877003cd907a0818785">applyFracture</a>(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ae1582f709880a58d222530b6095da48e">getJointCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#ad4f8ce52518ca4654e1c16485fb13d8f">getJoints</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>** joints, uint32_t jointsSize) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html#a834a7e291fd82ee3b36ad0fc6f349399">isBoundToWorld</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;};</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKACTOR_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html_a9f89112a12e4183432c6aa827ea97875"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html#a9f89112a12e4183432c6aa827ea97875">Nv::Blast::TkActor::getIndex</a></div><div class="ttdeci">virtual uint32_t getIndex() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html_ad4f8ce52518ca4654e1c16485fb13d8f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html#ad4f8ce52518ca4654e1c16485fb13d8f">Nv::Blast::TkActor::getJoints</a></div><div class="ttdeci">virtual uint32_t getJoints(TkJoint **joints, uint32_t jointsSize) const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html_a3f6fc8b1d10cbcadc0accdb50d86ca50"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html#a3f6fc8b1d10cbcadc0accdb50d86ca50">Nv::Blast::TkActor::getActorLL</a></div><div class="ttdeci">virtual const NvBlastActor * getActorLL() const =0</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_actor_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_actor_impl_8h_source.html
index ccdbf4c..43bb399 100755
--- a/docs/source_docs/files/_nv_blast_tk_actor_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_actor_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_actor_impl_8h_source.html
<div class="title">NvBlastTkActorImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_actor_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKACTORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKACTORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_iterator_base_8h.html">NvBlastIteratorBase.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_impl_8h.html">NvBlastTkJointImpl.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;PxFlags.h&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Forward declarations:</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>TkAssetImpl;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkJointImpl;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html">TkActorFlag</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54"> 64</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54">Enum</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54a0b11a8f1c57865af0f03cdfc7df62f52"> 66</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54a0b11a8f1c57865af0f03cdfc7df62f52">DAMAGED</a> = (1 &lt;&lt; 0), </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54aebc6b3040a521ce237c9c6c030127ca4"> 67</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54aebc6b3040a521ce237c9c6c030127ca4">PENDING</a> = (1 &lt;&lt; 1), </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html"> 75</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Begin TkActor</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* getActorLL() <span class="keyword">const override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; getFamily() <span class="keyword">const override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> uint32_t getIndex() <span class="keyword">const override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* getGroup() <span class="keyword">const override</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* removeFromGroup() <span class="keyword">override</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* getAsset() <span class="keyword">const override</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> uint32_t getVisibleChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> uint32_t getVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) <span class="keyword">const override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t getGraphNodeCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> uint32_t getGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) <span class="keyword">const override</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* getBondHealths() <span class="keyword">const override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> uint32_t getSplitMaxActorCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> damage(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPending() <span class="keyword">const override</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFracture(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">const override</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyFracture(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) <span class="keyword">override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> uint32_t getJointCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> uint32_t getJoints(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>** joints, uint32_t jointsSize) <span class="keyword">const override</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isBoundToWorld() <span class="keyword">const override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// End TkActor</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Begin TkObject</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// End TkObject</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> isActive() <span class="keyword">const</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* getFamilyLL() <span class="keyword">const</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; TkFamilyImpl&amp; getFamilyImpl() <span class="keyword">const</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint32_t getIndexInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; TkGroupImpl* getGroupImpl() <span class="keyword">const</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* getActorLLInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; uint32_t getJointCountInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html"> 195</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html">JointIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html">DList::It</a></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html">JointIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; actor, <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> dir = Forward);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator * </a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">Nv::Blast::TkActorData</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> markAsDamaged();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">bool</span> isDamaged() <span class="keyword">const</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> makePending();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">void</span> addJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">void</span> removeJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">struct </span>DamageData</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> program;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; };</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* m_actorLL; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; TkFamilyImpl* m_family; </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; TkGroupImpl* m_group; </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; uint32_t m_groupJobIndex; </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; physx::PxFlags&lt;TkActorFlag::Enum, char&gt; m_flags; </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;DamageData&gt;::type</a> m_damageBuffer; </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint32_t m_jointCount; </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a> m_jointList; </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">//#if NV_PROFILE</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a> m_timers; </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">//#endif</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a3f42f80da05c9925611c297ebfd6a594"> 251</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html">TkWorker</a>; <span class="comment">// m_damageBuffer and m_flags </span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a3872e8351ad812baad59a5f0fc357a05"> 252</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a2e913a71937c6b28e28abab3012c69f1"> 253</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#af2403d51a28475e3c6c362f0fbdc8c53"> 254</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#ab3dc3d8e38a1518e1215c39f55db6851"> 255</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;};</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a93840a54de124340f37e56a990f40721"> 261</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> TkFamilyImpl&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a93840a54de124340f37e56a990f40721">TkActorImpl::getFamilyImpl</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_family != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> *m_family;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a201f43fea2bc53ae4ab54501a7da8685"> 269</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a201f43fea2bc53ae4ab54501a7da8685">TkActorImpl::getIndexInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(isActive());</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_8h.html#a0b985e47f17306b7457a995fb1fc77cc">NvBlastActorGetIndex</a>(m_actorLL, <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a4d6140878eee2891880fb41d8db66676"> 276</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a4d6140878eee2891880fb41d8db66676">TkActorImpl::getActorLLInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> m_actorLL;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#adc6bdbe23dafbb98c72f00d6af043c05"> 282</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#adc6bdbe23dafbb98c72f00d6af043c05">TkActorImpl::getJointCountInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> m_jointCount;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#ae44620e530a8834f4dcee0e6cbd2f7b2"> 288</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> TkGroupImpl* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#ae44620e530a8834f4dcee0e6cbd2f7b2">TkActorImpl::getGroupImpl</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> m_group;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#aeba028f782cb250edf02604da462d6e5"> 294</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#aeba028f782cb250edf02604da462d6e5">TkActorImpl::isActive</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> m_actorLL != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;}</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a562fd902c527b43e8e37add9d391aeb8"> 300</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a562fd902c527b43e8e37add9d391aeb8">TkActorImpl::isPending</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> m_flags.isSet(<a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54aebc6b3040a521ce237c9c6c030127ca4">TkActorFlag::PENDING</a>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkActorImpl::addJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_jointList.isSolitary(jointLink));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; m_jointList.insertHead(jointLink);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; ++m_jointCount;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkActorImpl::removeJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!m_jointList.isSolitary(jointLink));</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_jointCount &gt; 0);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (m_jointCount &gt; 0)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; --m_jointCount;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_jointList.remove(jointLink);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2"> 329</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2">TkActorImpl::JointIt::JointIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; actor, <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> dir) : <a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a>::It(actor.m_jointList, dir) {}</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#ae99927c2831e7d1730e1cfb89ba7a5f5"> 332</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#ae99927c2831e7d1730e1cfb89ba7a5f5">TkActorImpl::JointIt::operator * </a>()<span class="keyword"> const</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* link = (<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>*)(*<span class="keyword">this</span>);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>*<span class="keyword">&gt;</span>(link)-&gt;m_joint;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKACTORIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_actor_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKACTORIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKACTORIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_iterator_base_8h.html">NvBlastIteratorBase.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_impl_8h.html">NvBlastTkJointImpl.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_8h.html">NvBlastTkActor.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;PxFlags.h&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Forward declarations:</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>TkAssetImpl;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkJointImpl;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html"> 62</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html">TkActorFlag</a></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54"> 64</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54">Enum</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54a0b11a8f1c57865af0f03cdfc7df62f52"> 66</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54a0b11a8f1c57865af0f03cdfc7df62f52">DAMAGED</a> = (1 &lt;&lt; 0), </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54aebc6b3040a521ce237c9c6c030127ca4"> 67</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54aebc6b3040a521ce237c9c6c030127ca4">PENDING</a> = (1 &lt;&lt; 1), </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html"> 75</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ~<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Begin TkActor</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* getActorLL() <span class="keyword">const override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>&amp; getFamily() <span class="keyword">const override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> uint32_t getIndex() <span class="keyword">const override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* getGroup() <span class="keyword">const override</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* removeFromGroup() <span class="keyword">override</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* getAsset() <span class="keyword">const override</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> uint32_t getVisibleChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> uint32_t getVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize) <span class="keyword">const override</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> uint32_t getGraphNodeCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> uint32_t getGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize) <span class="keyword">const override</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* getBondHealths() <span class="keyword">const override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> uint32_t getSplitMaxActorCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> damage(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPending() <span class="keyword">const override</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateFracture(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a>&amp; program, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams) <span class="keyword">const override</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyFracture(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* eventBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) <span class="keyword">override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> uint32_t getJointCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> uint32_t getJoints(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>** joints, uint32_t jointsSize) <span class="keyword">const override</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isBoundToWorld() <span class="keyword">const override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// End TkActor</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Begin TkObject</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// End TkObject</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> isActive() <span class="keyword">const</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* getFamilyLL() <span class="keyword">const</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; TkFamilyImpl&amp; getFamilyImpl() <span class="keyword">const</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint32_t getIndexInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; TkGroupImpl* getGroupImpl() <span class="keyword">const</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* getActorLLInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; uint32_t getJointCountInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html"> 195</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html">JointIt</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html">DList::It</a></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html">JointIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; actor, <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> dir = Forward);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* <a class="code" href="_nv_blast_px_shared_helpers_8h.html#a6753f5de02113c898460719debac36f1">operator * </a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">Nv::Blast::TkActorData</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> markAsDamaged();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">bool</span> isDamaged() <span class="keyword">const</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> makePending();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">void</span> addJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">void</span> removeJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">struct </span>DamageData</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a> program;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; };</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* m_actorLL; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; TkFamilyImpl* m_family; </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; TkGroupImpl* m_group; </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; uint32_t m_groupJobIndex; </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; physx::PxFlags&lt;TkActorFlag::Enum, char&gt; m_flags; </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html">Array&lt;DamageData&gt;::type</a> m_damageBuffer; </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint32_t m_jointCount; </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a> m_jointList; </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">//#if NV_PROFILE</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a> m_timers; </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">//#endif</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a3f42f80da05c9925611c297ebfd6a594"> 251</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html">TkWorker</a>; <span class="comment">// m_damageBuffer and m_flags </span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a3872e8351ad812baad59a5f0fc357a05"> 252</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a2e913a71937c6b28e28abab3012c69f1"> 253</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#af2403d51a28475e3c6c362f0fbdc8c53"> 254</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#ab3dc3d8e38a1518e1215c39f55db6851"> 255</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;};</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a93840a54de124340f37e56a990f40721"> 261</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> TkFamilyImpl&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a93840a54de124340f37e56a990f40721">TkActorImpl::getFamilyImpl</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_family != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> *m_family;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a201f43fea2bc53ae4ab54501a7da8685"> 269</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a201f43fea2bc53ae4ab54501a7da8685">TkActorImpl::getIndexInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(isActive());</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_8h.html#a0b985e47f17306b7457a995fb1fc77cc">NvBlastActorGetIndex</a>(m_actorLL, <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a4d6140878eee2891880fb41d8db66676"> 276</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a4d6140878eee2891880fb41d8db66676">TkActorImpl::getActorLLInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> m_actorLL;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#adc6bdbe23dafbb98c72f00d6af043c05"> 282</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#adc6bdbe23dafbb98c72f00d6af043c05">TkActorImpl::getJointCountInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> m_jointCount;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#ae44620e530a8834f4dcee0e6cbd2f7b2"> 288</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> TkGroupImpl* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#ae44620e530a8834f4dcee0e6cbd2f7b2">TkActorImpl::getGroupImpl</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> m_group;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#aeba028f782cb250edf02604da462d6e5"> 294</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#aeba028f782cb250edf02604da462d6e5">TkActorImpl::isActive</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> m_actorLL != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;}</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a562fd902c527b43e8e37add9d391aeb8"> 300</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html#a562fd902c527b43e8e37add9d391aeb8">TkActorImpl::isPending</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> m_flags.isSet(<a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_flag.html#a6018d53594950eb9dd51a23538df0a54aebc6b3040a521ce237c9c6c030127ca4">TkActorFlag::PENDING</a>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkActorImpl::addJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_jointList.isSolitary(jointLink));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; m_jointList.insertHead(jointLink);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; ++m_jointCount;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkActorImpl::removeJoint(<a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>&amp; jointLink)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!m_jointList.isSolitary(jointLink));</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_jointCount &gt; 0);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (m_jointCount &gt; 0)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; --m_jointCount;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_jointList.remove(jointLink);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2"> 329</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2">TkActorImpl::JointIt::JointIt</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; actor, <a class="code" href="class_nv_1_1_blast_1_1_d_list_1_1_it.html#ad6a58c8c96853bac4d82880eade9e12c">Direction</a> dir) : <a class="code" href="class_nv_1_1_blast_1_1_d_list.html">DList</a>::It(actor.m_jointList, dir) {}</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#ae99927c2831e7d1730e1cfb89ba7a5f5"> 332</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#ae99927c2831e7d1730e1cfb89ba7a5f5">TkActorImpl::JointIt::operator * </a>()<span class="keyword"> const</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>* link = (<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a>*)(*<span class="keyword">this</span>);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a>*<span class="keyword">&gt;</span>(link)-&gt;m_joint;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKACTORIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_array_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html">Nv::Blast::Array</a></div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:46</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_impl_html_aeba028f782cb250edf02604da462d6e5"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor_impl.html#aeba028f782cb250edf02604da462d6e5">Nv::Blast::TkActorImpl::isActive</a></div><div class="ttdeci">bool isActive() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkActorImpl.h:294</div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_asset_8h_source.html b/docs/source_docs/files/_nv_blast_tk_asset_8h_source.html
index 11aef88..24a384a 100755
--- a/docs/source_docs/files/_nv_blast_tk_asset_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_asset_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_asset_8h_source.html','')
<div class="title">NvBlastTkAsset.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c">nodeIndices</a>[2]; </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d"> 51</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d">attachPositions</a>[2]; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_asset.html"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLL() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> uint32_t getLeafChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* getBonds() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> getGraph() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint32_t getDataSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t getJointDescCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescs() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKASSET_H</span></div><div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
+<a href="_nv_blast_tk_asset_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKASSET_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKASSET_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#ad2f879c85037d1efe3923d2b024e623c">nodeIndices</a>[2]; </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d"> 51</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html#a89508d6669e2375c5896ae37bad6d09d">attachPositions</a>[2]; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_asset.html"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLL() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> uint32_t getLeafChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* getChunks() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* getBonds() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> getGraph() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> uint32_t getDataSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> uint32_t getJointDescCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescs() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKASSET_H</span></div><div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_asset_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_asset_impl_8h_source.html
index c8ba54d..5a318cb 100755
--- a/docs/source_docs/files/_nv_blast_tk_asset_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_asset_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_asset_impl_8h_source.html
<div class="title">NvBlastTkAssetImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_asset_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKASSETIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKASSETIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_impl_8h.html">NvBlastTkTypeImpl.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c"> 52</a></span>&#160;<a class="code" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c">NVBLASTTK_IMPL_DECLARE</a>(<a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; TkAssetImpl();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; TkAssetImpl(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; ~TkAssetImpl();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5">NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE</a>(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>, <span class="charliteral">&#39;S&#39;</span>, <span class="charliteral">&#39;T&#39;</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">static</span> TkAssetImpl* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> TkAssetImpl* create(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLLInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint32_t getJointDescCountInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescsInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Begin TkAsset</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLL() <span class="keyword">const override</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> uint32_t getLeafChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* getChunks() <span class="keyword">const override</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* getBonds() <span class="keyword">const override</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> getGraph() <span class="keyword">const override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> uint32_t getDataSize() <span class="keyword">const override</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> uint32_t getJointDescCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescs() <span class="keyword">const override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// End TkAsset</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">bool</span> addJointDesc(uint32_t chunkIndex0, uint32_t chunkIndex1);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* m_assetLL; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkAssetJointDesc&gt;::type</a> m_jointDescs; </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> m_ownsAsset; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* TkAssetImpl::getAssetLLInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> m_assetLL;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkAssetImpl::getJointDescCountInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> m_jointDescs.size();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* TkAssetImpl::getJointDescsInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> m_jointDescs.begin();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKASSETIMPL_H</span></div><div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
+<a href="_nv_blast_tk_asset_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKASSETIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKASSETIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_impl_8h.html">NvBlastTkTypeImpl.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c"> 52</a></span>&#160;<a class="code" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c">NVBLASTTK_IMPL_DECLARE</a>(<a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; TkAssetImpl();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; TkAssetImpl(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; ~TkAssetImpl();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5">NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE</a>(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;S&#39;</span>, <span class="charliteral">&#39;S&#39;</span>, <span class="charliteral">&#39;T&#39;</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">static</span> TkAssetImpl* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> TkAssetImpl* create(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLLInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint32_t getJointDescCountInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescsInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Begin TkAsset</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* getAssetLL() <span class="keyword">const override</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> uint32_t getLeafChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> uint32_t getBondCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* getChunks() <span class="keyword">const override</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* getBonds() <span class="keyword">const override</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> getGraph() <span class="keyword">const override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> uint32_t getDataSize() <span class="keyword">const override</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> uint32_t getJointDescCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* getJointDescs() <span class="keyword">const override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// End TkAsset</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">bool</span> addJointDesc(uint32_t chunkIndex0, uint32_t chunkIndex1);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* m_assetLL; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkAssetJointDesc&gt;::type</a> m_jointDescs; </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> m_ownsAsset; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* TkAssetImpl::getAssetLLInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> m_assetLL;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkAssetImpl::getJointDescCountInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> m_jointDescs.size();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">TkAssetJointDesc</a>* TkAssetImpl::getJointDescsInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> m_jointDescs.begin();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKASSETIMPL_H</span></div><div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="struct_nv_blast_bond_html"><div class="ttname"><a href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:189</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_array_html_a94fd490890f7c6e45784fd43eb14e260"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Nv::Blast::Array::type</a></div><div class="ttdeci">physx::shdfnd::Array&lt; T, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:48</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_common_8h_source.html b/docs/source_docs/files/_nv_blast_tk_common_8h_source.html
index f54290a..8753555 100755
--- a/docs/source_docs/files/_nv_blast_tk_common_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_common_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_common_8h_source.html',''
<div class="title">NvBlastTkCommon.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_common_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKCOMMON_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKCOMMON_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_g_u_i_d_8h.html">NvBlastTkGUID.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// Macro to define standard object classes. An intermediate class is defined which holds common implementations.</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_nv_blast_tk_common_8h.html#a6780b152c722066f67ab03eca09872dc"> 38</a></span>&#160;<span class="preprocessor">#define NVBLASTTK_IMPL_DECLARE(_name) \</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">class Tk##_name##Type : public Tk##_name \</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">public: \</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Blank constructor generates a new NvBlastID and informs framework */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> Tk##_name##Type() \</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> memset(&amp;m_ID, 0, sizeof(NvBlastID)); \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> setID(TkGenerateGUID(this)); \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> TkFrameworkImpl::get()-&gt;onCreate(*this); \</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> </span><span class="comment">/* This constructor takes an existing NvBlastID and informs framework */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> Tk##_name##Type(const NvBlastID&amp; id) \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> memset(&amp;m_ID, 0, sizeof(NvBlastID)); \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> setID(id); \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> TkFrameworkImpl::get()-&gt;onCreate(*this); \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Destructor informs framework */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> ~Tk##_name##Type() { TkFrameworkImpl::get()-&gt;onDestroy(*this); } \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Begin TkIdentifiable */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> virtual void setID(const NvBlastID&amp; id) override \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Inform framework of ID change */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> TkFrameworkImpl::get()-&gt;onIDChange(*this, m_ID, id); \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> m_ID = id; \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> virtual const NvBlastID&amp; getID() const override { return getIDInternal(); } \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> virtual const TkType&amp; getType() const override { return s_type; } \</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> </span><span class="comment">/* End TkIdentifiable */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Begin public API */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Inline method for internal access to NvBlastID */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> const NvBlastID&amp; getIDInternal() const { return m_ID; } \</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> </span><span class="comment">/* End public API */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Static type information */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> static TkTypeImpl s_type; \</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">private: \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> NvBlastID m_ID; </span><span class="comment">/* NvBlastID for a TkIdentifiable object */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">}; \</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"></span><span class="comment">/* Derive object implementation from common implementation class above */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">class Tk##_name##Impl final : public Tk##_name##Type</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// Macro to declare standard object interfaces, enums, etc.</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5"> 91</a></span>&#160;<span class="preprocessor">#define NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE(_id0, _id1, _id2, _id3) \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Begin TkObject */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> virtual void release() override; \</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> </span><span class="comment">/* End TkObject */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Enums */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Generate a ClassID enum used to identify this TkIdentifiable. */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> enum { ClassID = NVBLAST_FOURCC(_id0, _id1, _id2, _id3) }</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">// Macro to define class type data</span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_nv_blast_tk_common_8h.html#ad17fec1e0253ec1c78824c477ac8bc65"> 103</a></span>&#160;<span class="preprocessor">#define NVBLASTTK_DEFINE_TYPE_IDENTIFIABLE(_name) \</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> TkTypeImpl Tk##_name##Type::s_type(&quot;Tk&quot; #_name, Tk##_name##Impl::ClassID, 0)</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKCOMMON_H</span></div><div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
+<a href="_nv_blast_tk_common_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKCOMMON_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKCOMMON_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_g_u_i_d_8h.html">NvBlastTkGUID.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// Macro to define standard object classes. An intermediate class is defined which holds common implementations.</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_nv_blast_tk_common_8h.html#a6780b152c722066f67ab03eca09872dc"> 38</a></span>&#160;<span class="preprocessor">#define NVBLASTTK_IMPL_DECLARE(_name) \</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">class Tk##_name##Type : public Tk##_name \</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">public: \</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Blank constructor generates a new NvBlastID and informs framework */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> Tk##_name##Type() \</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> memset(&amp;m_ID, 0, sizeof(NvBlastID)); \</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> setID(TkGenerateGUID(this)); \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> TkFrameworkImpl::get()-&gt;onCreate(*this); \</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> </span><span class="comment">/* This constructor takes an existing NvBlastID and informs framework */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> Tk##_name##Type(const NvBlastID&amp; id) \</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> memset(&amp;m_ID, 0, sizeof(NvBlastID)); \</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> setID(id); \</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> TkFrameworkImpl::get()-&gt;onCreate(*this); \</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Destructor informs framework */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> ~Tk##_name##Type() { TkFrameworkImpl::get()-&gt;onDestroy(*this); } \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Begin TkIdentifiable */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> virtual void setID(const NvBlastID&amp; id) override \</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Inform framework of ID change */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> TkFrameworkImpl::get()-&gt;onIDChange(*this, m_ID, id); \</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> m_ID = id; \</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> } \</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> virtual const NvBlastID&amp; getID() const override { return getIDInternal(); } \</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> virtual const TkType&amp; getType() const override { return s_type; } \</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> </span><span class="comment">/* End TkIdentifiable */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Begin public API */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Inline method for internal access to NvBlastID */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> const NvBlastID&amp; getIDInternal() const { return m_ID; } \</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> </span><span class="comment">/* End public API */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Static type information */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> static TkTypeImpl s_type; \</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">private: \</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> NvBlastID m_ID; </span><span class="comment">/* NvBlastID for a TkIdentifiable object */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">}; \</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"></span><span class="comment">/* Derive object implementation from common implementation class above */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">class Tk##_name##Impl final : public Tk##_name##Type</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// Macro to declare standard object interfaces, enums, etc.</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5"> 91</a></span>&#160;<span class="preprocessor">#define NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE(_id0, _id1, _id2, _id3) \</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Begin TkObject */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> virtual void release() override; \</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> </span><span class="comment">/* End TkObject */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Enums */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> </span><span class="comment">/* Generate a ClassID enum used to identify this TkIdentifiable. */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> enum { ClassID = NVBLAST_FOURCC(_id0, _id1, _id2, _id3) }</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">// Macro to define class type data</span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="_nv_blast_tk_common_8h.html#ad17fec1e0253ec1c78824c477ac8bc65"> 103</a></span>&#160;<span class="preprocessor">#define NVBLASTTK_DEFINE_TYPE_IDENTIFIABLE(_name) \</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> TkTypeImpl Tk##_name##Type::s_type(&quot;Tk&quot; #_name, Tk##_name##Impl::ClassID, 0)</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKCOMMON_H</span></div><div class="ttc" id="_nv_blast_globals_8h_html"><div class="ttname"><a href="_nv_blast_globals_8h.html">NvBlastGlobals.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_g_u_i_d_8h_html"><div class="ttname"><a href="_nv_blast_tk_g_u_i_d_8h.html">NvBlastTkGUID.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/source_docs/files/_nv_blast_tk_event_8h_source.html b/docs/source_docs/files/_nv_blast_tk_event_8h_source.html
index e0e200c..45a1658 100755
--- a/docs/source_docs/files/_nv_blast_tk_event_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_event_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_event_8h_source.html','')
<div class="title">NvBlastTkEvent.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_event_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html"> 53</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68">family</a>; </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96"> 56</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96">userData</a>; </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c">index</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Enums</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b"> 68</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">Split</a>, </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647"> 71</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">FractureCommand</a>, </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98"> 72</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">FractureEvent</a>, </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2"> 73</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">JointUpdate</a>, </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba8ddfbe9ceb31a245bd3c53bacd64353b"> 75</a></span>&#160; TypeCount</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc">payload</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5"> 80</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5">type</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a"> 88</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a">getPayload</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(payload); }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html"> 99</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html">TkSplitEvent</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26d5e7e30712986c41cc8600daf3a55ba296e1f3438ab01d26f18804e6780ab3f"> 101</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">TkEvent::Split</a> };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c"> 103</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c">parentData</a>; </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145"> 104</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145">numChildren</a>; </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be"> 105</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be">children</a>; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html">TkFractureCommands</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a12a93f44073001a91bb5e6ce2546a58fa32a3a2f7f1a68ff430f0ac66e531d913"> 116</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">TkEvent::FractureCommand</a> };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165"> 118</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165">tkActorData</a>; </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030"> 119</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030">buffers</a>; </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html">TkFractureEvents</a></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#ab6f1900cece2b2685d23a6d498594be2a15720a970e169b8970bcf2861217b024"> 130</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">TkEvent::FractureEvent</a> };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7"> 132</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7">tkActorData</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e"> 133</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e">buffers</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603"> 134</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603">bondsDamaged</a>; </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925">bondsBroken</a>; </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567">chunksDamaged</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db">chunksBroken</a>; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html">TkJointUpdateEvent</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a58c57c41c2feafdb89aad6fd244422e2afd38618f938db2a6b13fd498b586675c"> 150</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">TkEvent::JointUpdate</a> };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d"> 152</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8"> 154</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8">External</a>, </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717"> 155</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717">Changed</a>, </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da7cfcf13b35fbd5644d11037762bb053c"> 156</a></span>&#160; Unreferenced </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e"> 159</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e">joint</a>; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883"> 160</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883">subtype</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_listener.html"> 168</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKEVENT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_event_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKEVENT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkFamily;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html"> 53</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68"> 55</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#a7c88bccb5c40ecae592ba67d1cc91b68">family</a>; </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96"> 56</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ae648745137d1ba4ac78dbb8189e43f96">userData</a>; </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c"> 57</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html#ab279c882b2df84148ca6d61c4beb6e2c">index</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html"> 65</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Enums</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b"> 68</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8"> 70</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">Split</a>, </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647"> 71</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">FractureCommand</a>, </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98"> 72</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">FractureEvent</a>, </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2"> 73</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">JointUpdate</a>, </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba8ddfbe9ceb31a245bd3c53bacd64353b"> 75</a></span>&#160; TypeCount</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc"> 79</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">void</span>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc">payload</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5"> 80</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">Type</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a000709f52a7d7e2629aaa0114260dec5">type</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a"> 88</a></span>&#160; <span class="keyword">const</span> T* <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a">getPayload</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(payload); }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html"> 99</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html">TkSplitEvent</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26d5e7e30712986c41cc8600daf3a55ba296e1f3438ab01d26f18804e6780ab3f"> 101</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba02c12594603837feafbdb7f02aa5f7d8">TkEvent::Split</a> };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c"> 103</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a70c824b5887d87b2281061e66507d84c">parentData</a>; </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145"> 104</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#a26a9b6681dbca8131026f1fa99209145">numChildren</a>; </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be"> 105</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** <a class="code" href="struct_nv_1_1_blast_1_1_tk_split_event.html#af2e81b852d79966c280dbe9db880e4be">children</a>; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html">TkFractureCommands</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a12a93f44073001a91bb5e6ce2546a58fa32a3a2f7f1a68ff430f0ac66e531d913"> 116</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba19ab6a1a1e39df40326e78ede85dd647">TkEvent::FractureCommand</a> };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165"> 118</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a608bf8f5cbe35f500032f658d7506165">tkActorData</a>; </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030"> 119</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_commands.html#a780c99c2e44eae6f8ae9055fa7149030">buffers</a>; </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html"> 128</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html">TkFractureEvents</a></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#ab6f1900cece2b2685d23a6d498594be2a15720a970e169b8970bcf2861217b024"> 130</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07bac6b2016ae9607033e0d76000d6d13e98">TkEvent::FractureEvent</a> };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7"> 132</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_data.html">TkActorData</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a72dd097e130d579a018b911e6347f5c7">tkActorData</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e"> 133</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a0d29bbfe5c5bc78f718575c589081c8e">buffers</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603"> 134</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a59464b9ef90125a007918b4679b73603">bondsDamaged</a>; </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925"> 135</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#aa9b6aaba334f5cff7456bc2b29215925">bondsBroken</a>; </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567"> 136</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#acfb0961d364f23fcbf30196eb5970567">chunksDamaged</a>; </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db"> 137</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_fracture_events.html#a756a9bfae666a76dcf509a88b856c7db">chunksBroken</a>; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html">TkJointUpdateEvent</a></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a58c57c41c2feafdb89aad6fd244422e2afd38618f938db2a6b13fd498b586675c"> 150</a></span>&#160; <span class="keyword">enum</span> { EVENT_TYPE = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07ba31e6a4fa25b3f83bb3e23185829430b2">TkEvent::JointUpdate</a> };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d"> 152</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8"> 154</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da0b71861440e6e4a16b3567c74cfca6d8">External</a>, </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717"> 155</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da4572d5e17e0c62169544ab36e5d61717">Changed</a>, </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da7cfcf13b35fbd5644d11037762bb053c"> 156</a></span>&#160; Unreferenced </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e"> 159</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e">joint</a>; </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883"> 160</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7d">Subtype</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#a1d4d35a36d2fa508b40785ab17694883">subtype</a>; </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;};</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_listener.html"> 168</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> receive(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>* events, uint32_t eventCount) = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;};</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKEVENT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_joint_update_event_html_aba5f7ab9ad11a81e32ac107278428c8e"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#aba5f7ab9ad11a81e32ac107278428c8e">Nv::Blast::TkJointUpdateEvent::joint</a></div><div class="ttdeci">TkJoint * joint</div><div class="ttdoc">The joint being updated. </div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:159</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_event_html_a255a9107e4fc1135668f9f54eeeec46a"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_event.html#a255a9107e4fc1135668f9f54eeeec46a">Nv::Blast::TkEvent::getPayload</a></div><div class="ttdeci">const T * getPayload() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:88</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_event_html_a84ab4fb1c357357dd349bb367d1f93dc"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_event.html#a84ab4fb1c357357dd349bb367d1f93dc">Nv::Blast::TkEvent::payload</a></div><div class="ttdeci">const void * payload</div><div class="ttdoc">Type-dependent payload data. </div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:79</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_event_queue_8h_source.html b/docs/source_docs/files/_nv_blast_tk_event_queue_8h_source.html
index 1e8272f..65368a4 100755
--- a/docs/source_docs/files/_nv_blast_tk_event_queue_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_event_queue_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_event_queue_8h_source.htm
<div class="title">NvBlastTkEventQueue.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_event_queue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKEVENTQUEUE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKEVENTQUEUE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_impl_8h.html">NvBlastTkFrameworkImpl.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>Blast {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html"> 61</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a715a047643c3558247d5ddd11fa1a72b"> 64</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a715a047643c3558247d5ddd11fa1a72b">TkEventQueue</a>() : m_currentEvent(0), m_poolCapacity(0), m_pool(nullptr), m_allowAllocs(true) {}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a821d0efa74abb1d3f9b7c90e8650b81c"> 70</a></span>&#160; <span class="keyword">operator</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkEvent&gt;::type</a>&amp;() </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_currentEvent == m_events.size());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> m_events; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a72bcf50b0fc99b074cb23daeb3d56593"> 84</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a72bcf50b0fc99b074cb23daeb3d56593">protect</a>(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// During parallel use, m_events.size() and m_currentEvent are allowed to diverge.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// This is fine because resizeUninitialized does not alter the stored data.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_currentEvent &lt;= m_events.capacity());</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_events.resizeUninitialized(m_currentEvent);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_allowAllocs = !enable;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#acaa7934deb555ae3248418b4eef085d2"> 97</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#acaa7934deb555ae3248418b4eef085d2">reset</a>()</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_events.clear();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_currentEvent = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">void</span>* mem : m_memory)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(mem);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_memory.clear();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_currentData = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_allowAllocs = <span class="keyword">true</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_poolCapacity = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_pool = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#ae449516fef2757f8547fdb39ba98b375"> 116</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#ae449516fef2757f8547fdb39ba98b375">addEvent</a>(T* payload)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint32_t index = m_currentEvent.fetch_add(1);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Should not allocate in protected state.</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs || m_currentEvent &lt;= m_events.capacity());</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_events.resizeUninitialized(m_currentEvent);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// During parallel use, m_events.size() and m_currentEvent are allowed to diverge.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Consistency is restored in protect().</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!m_allowAllocs || m_currentEvent == m_events.size());</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>&amp; evt = m_events[index];</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; evt.type = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">TkEvent::Type</a>(T::EVENT_TYPE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; evt.payload = payload;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a3fa1729437c4777e25f81d7ef2619a0e"> 138</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a3fa1729437c4777e25f81d7ef2619a0e">allocData</a>()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; uint32_t index = m_currentData.fetch_add(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (m_currentData &lt;= m_poolCapacity)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(&amp;m_pool[index]);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Could do larger block allocation here.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a">reserveData</a>(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Account for the requested size.</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_currentData = <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(&amp;m_pool[0]);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a"> 160</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a">reserveData</a>(<span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_pool = <span class="keyword">reinterpret_cast&lt;</span>uint8_t*<span class="keyword">&gt;</span>(allocDataBySize(size));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_poolCapacity = size;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_currentData = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a22f6d998d04d7906f56cebfd2c0cd6cd"> 171</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a22f6d998d04d7906f56cebfd2c0cd6cd">reserveEvents</a>(uint32_t n)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_events.reserve(m_events.size() + n);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a45c2af2539a526827de017c4915ca155"> 180</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a45c2af2539a526827de017c4915ca155">addListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_listeners.pushBack(&amp;l);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#af20f3459883d40b7644cf417c7798a72"> 188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#af20f3459883d40b7644cf417c7798a72">removeListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_listeners.findAndReplaceWithLast(&amp;l);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a624660738275022a9653ccc1e823b7f1"> 197</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a624660738275022a9653ccc1e823b7f1">dispatch</a>()</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a624660738275022a9653ccc1e823b7f1">dispatch</a>(*<span class="keyword">this</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#acaa7934deb555ae3248418b4eef085d2">reset</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a20a92b002de34cf665cc9ae38365cd07"> 206</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a20a92b002de34cf665cc9ae38365cd07">dispatch</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkEvent&gt;::type</a>&amp; events)<span class="keyword"> const</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span> (events.size())</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>* l : m_listeners)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="_nv_blast_profiler_internal_8h.html#a09c365a3a48c753e60b5dfec0a991eb9">BLAST_PROFILE_SCOPE_M</a>(<span class="stringliteral">&quot;TkEventQueue::dispatch&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; l-&gt;receive(events.begin(), events.size());</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span>* allocDataBySize(<span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span>* memory = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (size &gt; 0)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; memory = <a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(size, <span class="stringliteral">&quot;TkEventQueue Data&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_memory.pushBack(memory);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> memory;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkEvent&gt;::type</a> m_events; </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;void*&gt;::type</a> m_memory; </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; std::atomic&lt;uint32_t&gt; m_currentEvent; </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; std::atomic&lt;uint32_t&gt; m_currentData; </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">size_t</span> m_poolCapacity; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t* m_pool; </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">bool</span> m_allowAllocs; </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;TkEventListener*,4&gt;::type</a> m_listeners; </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;};</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKEVENTQUEUE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_event_queue_html_a45c2af2539a526827de017c4915ca155"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_event_queue.html#a45c2af2539a526827de017c4915ca155">Nv::Blast::TkEventQueue::addListener</a></div><div class="ttdeci">void addListener(TkEventListener &amp;l)</div><div class="ttdef"><b>Definition:</b> NvBlastTkEventQueue.h:180</div></div>
+<a href="_nv_blast_tk_event_queue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKEVENTQUEUE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKEVENTQUEUE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_impl_8h.html">NvBlastTkFrameworkImpl.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span>Blast {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html"> 61</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a715a047643c3558247d5ddd11fa1a72b"> 64</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a715a047643c3558247d5ddd11fa1a72b">TkEventQueue</a>() : m_currentEvent(0), m_poolCapacity(0), m_pool(nullptr), m_allowAllocs(true) {}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a821d0efa74abb1d3f9b7c90e8650b81c"> 70</a></span>&#160; <span class="keyword">operator</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkEvent&gt;::type</a>&amp;() </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_currentEvent == m_events.size());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> m_events; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a72bcf50b0fc99b074cb23daeb3d56593"> 84</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a72bcf50b0fc99b074cb23daeb3d56593">protect</a>(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// During parallel use, m_events.size() and m_currentEvent are allowed to diverge.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// This is fine because resizeUninitialized does not alter the stored data.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_currentEvent &lt;= m_events.capacity());</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_events.resizeUninitialized(m_currentEvent);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_allowAllocs = !enable;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#acaa7934deb555ae3248418b4eef085d2"> 97</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#acaa7934deb555ae3248418b4eef085d2">reset</a>()</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_events.clear();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_currentEvent = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">void</span>* mem : m_memory)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(mem);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_memory.clear();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_currentData = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_allowAllocs = <span class="keyword">true</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_poolCapacity = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_pool = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#ae449516fef2757f8547fdb39ba98b375"> 116</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#ae449516fef2757f8547fdb39ba98b375">addEvent</a>(T* payload)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uint32_t index = m_currentEvent.fetch_add(1);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Should not allocate in protected state.</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs || m_currentEvent &lt;= m_events.capacity());</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_events.resizeUninitialized(m_currentEvent);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// During parallel use, m_events.size() and m_currentEvent are allowed to diverge.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Consistency is restored in protect().</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(!m_allowAllocs || m_currentEvent == m_events.size());</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html">TkEvent</a>&amp; evt = m_events[index];</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; evt.type = <a class="code" href="struct_nv_1_1_blast_1_1_tk_event.html#a13a95a0e6743fea0f0a374a3d943b07b">TkEvent::Type</a>(T::EVENT_TYPE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; evt.payload = payload;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a3fa1729437c4777e25f81d7ef2619a0e"> 138</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a3fa1729437c4777e25f81d7ef2619a0e">allocData</a>()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; uint32_t index = m_currentData.fetch_add(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (m_currentData &lt;= m_poolCapacity)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(&amp;m_pool[index]);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Could do larger block allocation here.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a">reserveData</a>(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Account for the requested size.</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_currentData = <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(&amp;m_pool[0]);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a"> 160</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a">reserveData</a>(<span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_pool = <span class="keyword">reinterpret_cast&lt;</span>uint8_t*<span class="keyword">&gt;</span>(allocDataBySize(size));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_poolCapacity = size;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_currentData = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a22f6d998d04d7906f56cebfd2c0cd6cd"> 171</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a22f6d998d04d7906f56cebfd2c0cd6cd">reserveEvents</a>(uint32_t n)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_allowAllocs);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_events.reserve(m_events.size() + n);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a45c2af2539a526827de017c4915ca155"> 180</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a45c2af2539a526827de017c4915ca155">addListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_listeners.pushBack(&amp;l);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#af20f3459883d40b7644cf417c7798a72"> 188</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#af20f3459883d40b7644cf417c7798a72">removeListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_listeners.findAndReplaceWithLast(&amp;l);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a624660738275022a9653ccc1e823b7f1"> 197</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a624660738275022a9653ccc1e823b7f1">dispatch</a>()</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a624660738275022a9653ccc1e823b7f1">dispatch</a>(*<span class="keyword">this</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#acaa7934deb555ae3248418b4eef085d2">reset</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a20a92b002de34cf665cc9ae38365cd07"> 206</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html#a20a92b002de34cf665cc9ae38365cd07">dispatch</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkEvent&gt;::type</a>&amp; events)<span class="keyword"> const</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span> (events.size())</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>* l : m_listeners)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="_nv_blast_profiler_internal_8h.html#a09c365a3a48c753e60b5dfec0a991eb9">BLAST_PROFILE_SCOPE_M</a>(<span class="stringliteral">&quot;TkEventQueue::dispatch&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; l-&gt;receive(events.begin(), events.size());</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span>* allocDataBySize(<span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span>* memory = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (size &gt; 0)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; memory = <a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(size, <span class="stringliteral">&quot;TkEventQueue Data&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_memory.pushBack(memory);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> memory;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkEvent&gt;::type</a> m_events; </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;void*&gt;::type</a> m_memory; </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; std::atomic&lt;uint32_t&gt; m_currentEvent; </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; std::atomic&lt;uint32_t&gt; m_currentData; </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">size_t</span> m_poolCapacity; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t* m_pool; </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">bool</span> m_allowAllocs; </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;TkEventListener*,4&gt;::type</a> m_listeners; </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;};</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKEVENTQUEUE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_event_queue_html_a45c2af2539a526827de017c4915ca155"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_event_queue.html#a45c2af2539a526827de017c4915ca155">Nv::Blast::TkEventQueue::addListener</a></div><div class="ttdeci">void addListener(TkEventListener &amp;l)</div><div class="ttdef"><b>Definition:</b> NvBlastTkEventQueue.h:180</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_inline_array_html_a47c4d515e65129789d1b58bf02481057"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">Nv::Blast::InlineArray::type</a></div><div class="ttdeci">physx::shdfnd::InlineArray&lt; T, N, Allocator &gt; type</div><div class="ttdef"><b>Definition:</b> NvBlastArray.h:60</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_event_queue_html_aa4f82898eaa466e8e74d53f52e762d8a"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_event_queue.html#aa4f82898eaa466e8e74d53f52e762d8a">Nv::Blast::TkEventQueue::reserveData</a></div><div class="ttdeci">void reserveData(size_t size)</div><div class="ttdef"><b>Definition:</b> NvBlastTkEventQueue.h:160</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_event_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_event.html">Nv::Blast::TkEvent</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkEvent.h:65</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_family_8h_source.html b/docs/source_docs/files/_nv_blast_tk_family_8h_source.html
index 1be16de..990a756 100755
--- a/docs/source_docs/files/_nv_blast_tk_family_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_family_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_family_8h_source.html',''
<div class="title">NvBlastTkFamily.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkEventListener;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_family.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a2a7f616590d03b66e1fb894627319e00">getFamilyLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a517225cd7b806087595c119ff7cfdb95">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a20dd39add6e56703da92a488b1f3f729">getActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#affa660004a1804edfff31207e07f8c16">getActors</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a9b7b45257532084a2bd487ce21d45e34">addListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aa456973bc9ddd753483ef5d7211e73c9">removeListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#abbcd5d6eabbb5379e77e2942fe0b11a8">applyFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aff0ddc7484f6ee0dad8ee0e2f97be370">reinitialize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* newFamily, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFAMILY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
+<a href="_nv_blast_tk_family_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFAMILY_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span>TkEventListener;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_family.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a2a7f616590d03b66e1fb894627319e00">getFamilyLL</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a517225cd7b806087595c119ff7cfdb95">getAsset</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a20dd39add6e56703da92a488b1f3f729">getActorCount</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#affa660004a1804edfff31207e07f8c16">getActors</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#a9b7b45257532084a2bd487ce21d45e34">addListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aa456973bc9ddd753483ef5d7211e73c9">removeListener</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l) = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#abbcd5d6eabbb5379e77e2942fe0b11a8">applyFracture</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html#aff0ddc7484f6ee0dad8ee0e2f97be370">reinitialize</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* newFamily, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFAMILY_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html_a517225cd7b806087595c119ff7cfdb95"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html#a517225cd7b806087595c119ff7cfdb95">Nv::Blast::TkFamily::getAsset</a></div><div class="ttdeci">virtual const TkAsset * getAsset() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_family_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_family_impl_8h_source.html
index 1ab8a45..fbe2d90 100755
--- a/docs/source_docs/files/_nv_blast_tk_family_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_family_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_family_impl_8h_source.htm
<div class="title">NvBlastTkFamilyImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_family_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFAMILYIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFAMILYIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_impl_8h.html">NvBlastTkTypeImpl.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_impl_8h.html">NvBlastTkActorImpl.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_queue_8h.html">NvBlastTkEventQueue.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_map_8h.html">NvBlastHashMap.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">class </span>TkAssetImpl;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab4ad1749de1fc3bec68775515be13f63"> 60</a></span>&#160;<a class="code" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c">NVBLASTTK_IMPL_DECLARE</a>(Family)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; TkFamilyImpl();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; TkFamilyImpl(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; ~TkFamilyImpl();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5">NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE</a>(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;F&#39;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Begin TkFamily</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* getFamilyLL() <span class="keyword">const override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addListener(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)<span class="keyword"> override </span>{ m_queue.addListener(l); }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeListener(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)<span class="keyword"> override </span>{ m_queue.removeListener(l); }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyFracture(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands)<span class="keyword"> override </span>{ applyFractureInternal(commands); }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* getAsset() <span class="keyword">const override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reinitialize(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* newFamily, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group) <span class="keyword">override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// End TkFamily</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">static</span> TkFamilyImpl* create(<span class="keyword">const</span> TkAssetImpl* asset);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> TkAssetImpl* getAssetImpl() <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* getFamilyLLInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint32_t getActorCountInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* addActor(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actorLL);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">void</span> applyFractureInternal(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> removeActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actorLL);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a>&amp; getQueue() { <span class="keywordflow">return</span> m_queue; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* getActorByActorLL(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actorLL);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> updateJoints(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actor, <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a>* alternateQueue = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActorImpl&gt;::type</a>&amp; getActorsInternal();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; uint32_t getInternalJointCount() <span class="keyword">const</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* getInternalJoints() <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>** createExternalJointHandle(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; otherFamilyID, uint32_t chunkIndex0, uint32_t chunkIndex1);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">bool</span> deleteExternalJointHandle(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>*&amp; joint, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; otherFamilyID, uint32_t chunkIndex0, uint32_t chunkIndex1);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> releaseJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* getActorByChunk(uint32_t chunkIndex);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typedef</span> physx::shdfnd::Pair&lt;uint32_t, uint32_t&gt; ExternalJointKey; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* findExternalJoint(<span class="keyword">const</span> TkFamilyImpl* otherFamily, ExternalJointKey key) <span class="keyword">const</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* getActorByIndex(uint32_t index);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">struct </span>JointSet</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> m_familyID;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;ExternalJointKey, TkJointImpl*&gt;::type</a> m_joints;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">typedef</span> <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;NvBlastID, uint32_t&gt;::type</a> FamilyIDMap;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* m_familyLL;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActorImpl&gt;::type</a> m_actors;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; uint32_t m_internalJointCount;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;uint8_t&gt;::type</a> m_internalJointBuffer;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;JointSet*&gt;::type</a> m_jointSets;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; FamilyIDMap m_familyIDMap;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> TkAssetImpl* m_asset;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a> m_queue;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> TkAssetImpl* TkFamilyImpl::getAssetImpl()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> m_asset;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* TkFamilyImpl::getFamilyLLInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword"></span>{ </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> m_familyLL; </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkFamilyImpl::getActorCountInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_familyLL != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_8h.html#af5afdfa868ba73c0dcde587633348e80">NvBlastFamilyGetActorCount</a>(m_familyLL, <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* TkFamilyImpl::getActorByIndex(uint32_t index)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_actors.size());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> &amp;m_actors[index];</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* TkFamilyImpl::getActorByActorLL(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actorLL)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint32_t index = <a class="code" href="_nv_blast_8h.html#a0b985e47f17306b7457a995fb1fc77cc">NvBlastActorGetIndex</a>(actorLL, <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> getActorByIndex(index);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActorImpl&gt;::type</a>&amp; TkFamilyImpl::getActorsInternal()</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> m_actors;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkFamilyImpl::getInternalJointCount()<span class="keyword"> const</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> m_internalJointCount;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* TkFamilyImpl::getInternalJoints()<span class="keyword"> const</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>*<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>*<span class="keyword">&gt;</span>(m_internalJointBuffer.begin()));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkFamilyImpl::releaseJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(joint.m_owner == <span class="keyword">this</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(&amp;joint &gt;= getInternalJoints() &amp;&amp; &amp;joint &lt; getInternalJoints() + getInternalJointCount() * <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; joint.~TkJointImpl();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; joint.m_owner = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a69c2dd220d271978a87f8bc14fa8b7cf"> 215</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#a69c2dd220d271978a87f8bc14fa8b7cf">getFamilyID</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* actor)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;{</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> actor != <span class="keyword">nullptr</span> ? <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>*<span class="keyword">&gt;</span>(actor)-&gt;getFamilyImpl().getIDInternal() : *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>*<span class="keyword">&gt;</span>(<span class="stringliteral">&quot;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&quot;</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a6812eeabf30d92a2f9f68b02946d0f17"> 220</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#a69c2dd220d271978a87f8bc14fa8b7cf">getFamilyID</a>(<span class="keyword">const</span> TkFamilyImpl* family)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> family != <span class="keyword">nullptr</span> ? family-&gt;getIDInternal() : *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>*<span class="keyword">&gt;</span>(<span class="stringliteral">&quot;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&quot;</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFAMILYIMPL_H</span></div><div class="ttc" id="_nv_blast_tk_actor_impl_8h_html"><div class="ttname"><a href="_nv_blast_tk_actor_impl_8h.html">NvBlastTkActorImpl.h</a></div></div>
+<a href="_nv_blast_tk_family_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFAMILYIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFAMILYIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_family_8h.html">NvBlastTkFamily.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_impl_8h.html">NvBlastTkTypeImpl.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_actor_impl_8h.html">NvBlastTkActorImpl.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_queue_8h.html">NvBlastTkEventQueue.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_map_8h.html">NvBlastHashMap.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">class </span>TkAssetImpl;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ab4ad1749de1fc3bec68775515be13f63"> 60</a></span>&#160;<a class="code" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c">NVBLASTTK_IMPL_DECLARE</a>(Family)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; TkFamilyImpl();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; TkFamilyImpl(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; ~TkFamilyImpl();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5">NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE</a>(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;F&#39;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Begin TkFamily</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* getFamilyLL() <span class="keyword">const override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addListener(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)<span class="keyword"> override </span>{ m_queue.addListener(l); }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> removeListener(<a class="code" href="class_nv_1_1_blast_1_1_tk_event_listener.html">TkEventListener</a>&amp; l)<span class="keyword"> override </span>{ m_queue.removeListener(l); }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> applyFracture(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands)<span class="keyword"> override </span>{ applyFractureInternal(commands); }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* getAsset() <span class="keyword">const override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> reinitialize(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* newFamily, <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* group) <span class="keyword">override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// End TkFamily</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">static</span> TkFamilyImpl* create(<span class="keyword">const</span> TkAssetImpl* asset);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> TkAssetImpl* getAssetImpl() <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* getFamilyLLInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint32_t getActorCountInternal() <span class="keyword">const</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* addActor(<a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actorLL);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">void</span> applyFractureInternal(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commands);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> removeActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actorLL);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a>&amp; getQueue() { <span class="keywordflow">return</span> m_queue; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* getActorByActorLL(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actorLL);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> updateJoints(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actor, <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a>* alternateQueue = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActorImpl&gt;::type</a>&amp; getActorsInternal();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; uint32_t getInternalJointCount() <span class="keyword">const</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* getInternalJoints() <span class="keyword">const</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>** createExternalJointHandle(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; otherFamilyID, uint32_t chunkIndex0, uint32_t chunkIndex1);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">bool</span> deleteExternalJointHandle(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>*&amp; joint, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; otherFamilyID, uint32_t chunkIndex0, uint32_t chunkIndex1);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> releaseJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* getActorByChunk(uint32_t chunkIndex);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typedef</span> physx::shdfnd::Pair&lt;uint32_t, uint32_t&gt; ExternalJointKey; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* findExternalJoint(<span class="keyword">const</span> TkFamilyImpl* otherFamily, ExternalJointKey key) <span class="keyword">const</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* getActorByIndex(uint32_t index);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">struct </span>JointSet</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> m_familyID;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;ExternalJointKey, TkJointImpl*&gt;::type</a> m_joints;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">typedef</span> <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;NvBlastID, uint32_t&gt;::type</a> FamilyIDMap;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* m_familyLL;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActorImpl&gt;::type</a> m_actors;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; uint32_t m_internalJointCount;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;uint8_t&gt;::type</a> m_internalJointBuffer;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;JointSet*&gt;::type</a> m_jointSets;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; FamilyIDMap m_familyIDMap;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> TkAssetImpl* m_asset;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a> m_queue;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> TkAssetImpl* TkFamilyImpl::getAssetImpl()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> m_asset;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a>* TkFamilyImpl::getFamilyLLInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword"></span>{ </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> m_familyLL; </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkFamilyImpl::getActorCountInternal()<span class="keyword"> const</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_familyLL != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_nv_blast_8h.html#af5afdfa868ba73c0dcde587633348e80">NvBlastFamilyGetActorCount</a>(m_familyLL, <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* TkFamilyImpl::getActorByIndex(uint32_t index)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(index &lt; m_actors.size());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> &amp;m_actors[index];</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* TkFamilyImpl::getActorByActorLL(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* actorLL)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint32_t index = <a class="code" href="_nv_blast_8h.html#a0b985e47f17306b7457a995fb1fc77cc">NvBlastActorGetIndex</a>(actorLL, <a class="code" href="namespace_nv_1_1_blast.html#a1152c58af94417b6861e5bb3695b9ddf">logLL</a>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> getActorByIndex(index);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkActorImpl&gt;::type</a>&amp; TkFamilyImpl::getActorsInternal()</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> m_actors;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkFamilyImpl::getInternalJointCount()<span class="keyword"> const</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> m_internalJointCount;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* TkFamilyImpl::getInternalJoints()<span class="keyword"> const</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>*<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>*<span class="keyword">&gt;</span>(m_internalJointBuffer.begin()));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkFamilyImpl::releaseJoint(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(joint.m_owner == <span class="keyword">this</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(&amp;joint &gt;= getInternalJoints() &amp;&amp; &amp;joint &lt; getInternalJoints() + getInternalJointCount() * <span class="keyword">sizeof</span>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; joint.~TkJointImpl();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; joint.m_owner = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a69c2dd220d271978a87f8bc14fa8b7cf"> 215</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#a69c2dd220d271978a87f8bc14fa8b7cf">getFamilyID</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* actor)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;{</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> actor != <span class="keyword">nullptr</span> ? <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>*<span class="keyword">&gt;</span>(actor)-&gt;getFamilyImpl().getIDInternal() : *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>*<span class="keyword">&gt;</span>(<span class="stringliteral">&quot;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&quot;</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a6812eeabf30d92a2f9f68b02946d0f17"> 220</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="namespace_nv_1_1_blast.html#a69c2dd220d271978a87f8bc14fa8b7cf">getFamilyID</a>(<span class="keyword">const</span> TkFamilyImpl* family)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> family != <span class="keyword">nullptr</span> ? family-&gt;getIDInternal() : *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>*<span class="keyword">&gt;</span>(<span class="stringliteral">&quot;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&quot;</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFAMILYIMPL_H</span></div><div class="ttc" id="_nv_blast_tk_actor_impl_8h_html"><div class="ttname"><a href="_nv_blast_tk_actor_impl_8h.html">NvBlastTkActorImpl.h</a></div></div>
<div class="ttc" id="_nv_blast_8h_html"><div class="ttname"><a href="_nv_blast_8h.html">NvBlast.h</a></div></div>
<div class="ttc" id="_nv_blast_tk_event_queue_8h_html"><div class="ttname"><a href="_nv_blast_tk_event_queue_8h.html">NvBlastTkEventQueue.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor_impl.html">Nv::Blast::TkActorImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActorImpl.h:75</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_framework_8h_source.html b/docs/source_docs/files/_nv_blast_tk_framework_8h_source.html
index 20f51a2..50d6e83 100755
--- a/docs/source_docs/files/_nv_blast_tk_framework_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_framework_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_framework_8h_source.html'
<div class="title">NvBlastTkFramework.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_framework_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_8h.html">NvBlastTkEvent.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkEventDispatcher;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">struct </span>TkGroupDesc;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>TkIdentifiable;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">struct </span>TkAssetJointDesc;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc"> 79</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc">BondFlags</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca1f14e7d9defb7fb5476b281741f3d2be"> 81</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca6577aa74a8951c3cab057e369702e416"> 90</a></span>&#160; BondJointed = (1 &lt;&lt; 0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87"> 97</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87">bondFlags</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e"> 100</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e">TkAssetDesc</a>() : bondFlags(nullptr)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; chunkCount = bondCount = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; chunkDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; bondDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c"> 116</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c">asset</a>; </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4"> 119</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4">TkActorDesc</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* inAsset = <span class="keyword">nullptr</span>) : asset(inAsset)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uniformInitialBondHealth = uniformInitialLowerSupportChunkHealth = 1.0f;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; initialBondHealths = initialSupportChunkHealths = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html"> 130</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#ae6badf651ba000f9fe081a5ca096d6cc"> 132</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* families[2]; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a1b8542c85c4ce7cdedc03157b7c2427d"> 133</a></span>&#160; uint32_t chunkIndices[2]; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a34dab72bc3d33c4927c00f870f93ae37"> 134</a></span>&#160; physx::PxVec3 attachPositions[2]; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html"> 141</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html">TkTypeIndex</a></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a"> 143</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">Enum</a></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa0785a75fbc075612bffb021a49526ba2"> 145</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = 0, </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e"> 146</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e">Family</a>, </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8"> 147</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8">Group</a>, </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa36f1dbee3e8bc13b989992ae25cdf851"> 149</a></span>&#160; TypeCount</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;};</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html"> 160</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>* getType(<a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">TkTypeIndex::Enum</a> typeIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* findObjectByID(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getObjectCount(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> uint32_t getObjects(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>** buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> reorderAssetDescChunks(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> keepBondNormalChunkOrder = <span class="keyword">false</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ensureAssetExactSupportCoverage(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* createGroup(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* createActor(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* createJoint(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05"> 304</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05">~TkFramework</a>() {}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;};</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#a888ee37d151b2970275f6f08fa2682a9">NvBlastTkFrameworkCreate</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#a9d82c22dd6011224a7b93f96e6b71fc1">NvBlastTkFrameworkGet</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_tk_framework_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFRAMEWORK_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_8h.html">NvBlastTkEvent.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span>PxTransform;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>TkObject;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>TkEventDispatcher;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">class </span>TkAsset;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">struct </span>TkGroupDesc;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>TkGroup;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">class </span>TkJoint;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">class </span>TkIdentifiable;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">struct </span>TkAssetJointDesc;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc"> 79</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cc">BondFlags</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca1f14e7d9defb7fb5476b281741f3d2be"> 81</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a15a3f484366da17014e60980753a39cca6577aa74a8951c3cab057e369702e416"> 90</a></span>&#160; BondJointed = (1 &lt;&lt; 0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87"> 97</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a7c465247a0317fe6a46f32c4850bfa87">bondFlags</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e"> 100</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html#a12f1bf331d235d678ea5b1d8c98d2e8e">TkAssetDesc</a>() : bondFlags(nullptr)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; chunkCount = bondCount = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; chunkDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; bondDescs = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html"> 114</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c"> 116</a></span>&#160; <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a70c0d996c924c3c0656b17228413d19c">asset</a>; </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4"> 119</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html#a5492ae73de8b32b187c1cba24bb035b4">TkActorDesc</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* inAsset = <span class="keyword">nullptr</span>) : asset(inAsset)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uniformInitialBondHealth = uniformInitialLowerSupportChunkHealth = 1.0f;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; initialBondHealths = initialSupportChunkHealths = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;};</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html"> 130</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#ae6badf651ba000f9fe081a5ca096d6cc"> 132</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_family.html">TkFamily</a>* families[2]; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a1b8542c85c4ce7cdedc03157b7c2427d"> 133</a></span>&#160; uint32_t chunkIndices[2]; </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html#a34dab72bc3d33c4927c00f870f93ae37"> 134</a></span>&#160; physx::PxVec3 attachPositions[2]; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html"> 141</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html">TkTypeIndex</a></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a"> 143</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">Enum</a></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa0785a75fbc075612bffb021a49526ba2"> 145</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_asset.html">Asset</a> = 0, </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e"> 146</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aadf711c875bcfeb8a7cd48b341cfea39e">Family</a>, </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8"> 147</a></span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa53ef4f7c1cd9409edfd91fecee682ad8">Group</a>, </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa36f1dbee3e8bc13b989992ae25cdf851"> 149</a></span>&#160; TypeCount</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; };</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;};</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html"> 160</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>* getType(<a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">TkTypeIndex::Enum</a> typeIndex) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* findObjectByID(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> uint32_t getObjectCount(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">virtual</span> uint32_t getObjects(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>** buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> reorderAssetDescChunks(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> keepBondNormalChunkOrder = <span class="keyword">false</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ensureAssetExactSupportCoverage(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* createAsset(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* createGroup(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* createActor(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* createJoint(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc) = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05"> 304</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html#a64d7cfa0510f159444d37408dd1fdf05">~TkFramework</a>() {}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;};</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#a888ee37d151b2970275f6f08fa2682a9">NvBlastTkFrameworkCreate</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<a class="code" href="_nv_blast_preprocessor_8h.html#ae5c980f1b9848025a2fefa05a9d3bce1">NVBLAST_API</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">Nv::Blast::TkFramework</a>* <a class="code" href="_nv_blast_tk_framework_8h.html#a9d82c22dd6011224a7b93f96e6b71fc1">NvBlastTkFrameworkGet</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFRAMEWORK_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="_nv_blast_tk_framework_8h_html_a888ee37d151b2970275f6f08fa2682a9"><div class="ttname"><a href="_nv_blast_tk_framework_8h.html#a888ee37d151b2970275f6f08fa2682a9">NvBlastTkFrameworkCreate</a></div><div class="ttdeci">NVBLAST_API Nv::Blast::TkFramework * NvBlastTkFrameworkCreate()</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_family_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_family.html">Nv::Blast::TkFamily</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkFamily.h:55</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_framework_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_framework_impl_8h_source.html
index 3940c88..113b2b7 100755
--- a/docs/source_docs/files/_nv_blast_tk_framework_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_framework_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_framework_impl_8h_source.
<div class="title">NvBlastTkFrameworkImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_framework_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFRAMEWORKIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFRAMEWORKIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_internal_8h.html">NvBlastProfilerInternal.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_map_8h.html">NvBlastHashMap.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>TkTypeImpl;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkJointImpl;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework_impl.html"> 54</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a53ce3a88183164bfab8541b193d98e38">TkFrameworkImpl</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ab9761e9be425a9ddb71f1293920e11ac">~TkFrameworkImpl</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Begin TkFramework</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a9375502b9aadd680afa1bd2e3fba9e48">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#af17ad50dbc2f17eeb2f9172bf86a09d0">getType</a>(<a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">TkTypeIndex::Enum</a> typeIndex) <span class="keyword">const override</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a30c107f6e6a83b7eba0de851bc67af73">findObjectByID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const override</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a4332119be0c96bc812f2911cb9528ffd">getObjectCount</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type) <span class="keyword">const override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a4a37480572a0969d2fddf4a476961a08">getObjects</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>** buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type, uint32_t indexStart = 0) <span class="keyword">const override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad7a2e15a8ebca7995a5653d5efdd82a7">reorderAssetDescChunks</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> keepBondNormalChunkOrder = <span class="keyword">false</span>) <span class="keyword">const override</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a60e047e544757a625b123fb633194d80">ensureAssetExactSupportCoverage</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount) <span class="keyword">const override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad45cd110c344066b7bf50fd2743beb82">createAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad45cd110c344066b7bf50fd2743beb82">createAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a62cf99de17faea824364a987b165a1eb">createGroup</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a8abe98c41d659ecdeb70b722450b56be">createActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#aa2c0a8e8db4ba338bc7c35db417ce122">createJoint</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// End TkFramework</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad279a5f9eea8897839418d4088bdaf78">onCreate</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>&amp; <span class="keywordtype">object</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a104e730a31ea2d8d344f93ffe787892a">onDestroy</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>&amp; <span class="keywordtype">object</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad279a5f9eea8897839418d4088bdaf78">onCreate</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a104e730a31ea2d8d344f93ffe787892a">onDestroy</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5da9dfe8dc817432877ab39647d11daa">onIDChange</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>&amp; <span class="keywordtype">object</span>, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; IDPrev, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; IDCurr);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5c0fd56a2f0c42bbb58718f87aedb133">findObjectByIDInternal</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// Access to singleton</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>* <span class="keyword">get</span>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">set</span>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>* framework);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Enums</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">enum</span> { ClassID = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;K&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;W&#39;</span>) }; </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Static data</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>* s_framework; </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Types</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;const TkTypeImpl*, TkTypeIndex::TypeCount&gt;::type</a> m_types; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html">HashMap&lt;uint32_t, uint32_t&gt;::type</a> m_typeIDToIndex; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Objects and object names</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;NvBlastID, TkIdentifiable*&gt;::type</a> m_IDToObject; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray&lt;Array&lt;TkIdentifiable*&gt;::type</a>, <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa36f1dbee3e8bc13b989992ae25cdf851">TkTypeIndex::TypeCount</a>&gt;::type m_objects; </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// Track external joints (to do: make this a pool)</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">HashSet&lt;TkJointImpl*&gt;::type</a> m_joints; </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5c0fd56a2f0c42bbb58718f87aedb133"> 147</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5c0fd56a2f0c42bbb58718f87aedb133">TkFrameworkImpl::findObjectByIDInternal</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> entry = m_IDToObject.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span> (entry == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> entry-&gt;second;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFRAMEWORKIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_framework_impl_html_a62cf99de17faea824364a987b165a1eb"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a62cf99de17faea824364a987b165a1eb">Nv::Blast::TkFrameworkImpl::createGroup</a></div><div class="ttdeci">virtual TkGroup * createGroup(const TkGroupDesc &amp;desc) override</div></div>
+<a href="_nv_blast_tk_framework_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKFRAMEWORKIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKFRAMEWORKIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_8h.html">NvBlastTkFramework.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_profiler_internal_8h.html">NvBlastProfilerInternal.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_map_8h.html">NvBlastHashMap.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_hash_set_8h.html">NvBlastHashSet.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>TkTypeImpl;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkJointImpl;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework_impl.html"> 54</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework.html">TkFramework</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a53ce3a88183164bfab8541b193d98e38">TkFrameworkImpl</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ab9761e9be425a9ddb71f1293920e11ac">~TkFrameworkImpl</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Begin TkFramework</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a9375502b9aadd680afa1bd2e3fba9e48">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#af17ad50dbc2f17eeb2f9172bf86a09d0">getType</a>(<a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493a">TkTypeIndex::Enum</a> typeIndex) <span class="keyword">const override</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a30c107f6e6a83b7eba0de851bc67af73">findObjectByID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const override</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a4332119be0c96bc812f2911cb9528ffd">getObjectCount</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type) <span class="keyword">const override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a4a37480572a0969d2fddf4a476961a08">getObjects</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>** buffer, uint32_t bufferSize, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type, uint32_t indexStart = 0) <span class="keyword">const override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad7a2e15a8ebca7995a5653d5efdd82a7">reorderAssetDescChunks</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount, <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* bondDescs, uint32_t bondCount, uint32_t* chunkReorderMap = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> keepBondNormalChunkOrder = <span class="keyword">false</span>) <span class="keyword">const override</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a60e047e544757a625b123fb633194d80">ensureAssetExactSupportCoverage</a>(<a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* chunkDescs, uint32_t chunkCount) <span class="keyword">const override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad45cd110c344066b7bf50fd2743beb82">createAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_desc.html">TkAssetDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">TkAsset</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad45cd110c344066b7bf50fd2743beb82">createAsset</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a>* assetLL, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>* jointDescs = <span class="keyword">nullptr</span>, uint32_t jointDescCount = 0, <span class="keywordtype">bool</span> ownsAsset = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a62cf99de17faea824364a987b165a1eb">createGroup</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a8abe98c41d659ecdeb70b722450b56be">createActor</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_actor_desc.html">TkActorDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#aa2c0a8e8db4ba338bc7c35db417ce122">createJoint</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc) <span class="keyword">override</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// End TkFramework</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad279a5f9eea8897839418d4088bdaf78">onCreate</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>&amp; <span class="keywordtype">object</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a104e730a31ea2d8d344f93ffe787892a">onDestroy</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>&amp; <span class="keywordtype">object</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#ad279a5f9eea8897839418d4088bdaf78">onCreate</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a104e730a31ea2d8d344f93ffe787892a">onDestroy</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>&amp; joint);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5da9dfe8dc817432877ab39647d11daa">onIDChange</a>(<a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>&amp; <span class="keywordtype">object</span>, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; IDPrev, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; IDCurr);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5c0fd56a2f0c42bbb58718f87aedb133">findObjectByIDInternal</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// Access to singleton</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>* <span class="keyword">get</span>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">set</span>(<a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>* framework);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Enums</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">enum</span> { ClassID = <a class="code" href="_nv_blast_globals_8h.html#a05d6e56bfb4bc7ffdaccd9e32ef1551e">NVBLAST_FOURCC</a>(<span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;K&#39;</span>, <span class="charliteral">&#39;F&#39;</span>, <span class="charliteral">&#39;W&#39;</span>) }; </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Static data</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">static</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>* s_framework; </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Types</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html#a47c4d515e65129789d1b58bf02481057">InlineArray&lt;const TkTypeImpl*, TkTypeIndex::TypeCount&gt;::type</a> m_types; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html">HashMap&lt;uint32_t, uint32_t&gt;::type</a> m_typeIDToIndex; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Objects and object names</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;NvBlastID, TkIdentifiable*&gt;::type</a> m_IDToObject; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray&lt;Array&lt;TkIdentifiable*&gt;::type</a>, <a class="code" href="struct_nv_1_1_blast_1_1_tk_type_index.html#a57681ffd26c84b5272b7e0c23103493aa36f1dbee3e8bc13b989992ae25cdf851">TkTypeIndex::TypeCount</a>&gt;::type m_objects; </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// Track external joints (to do: make this a pool)</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_set.html#abb3e1de36be2fb129233251f720c0d93">HashSet&lt;TkJointImpl*&gt;::type</a> m_joints; </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5c0fd56a2f0c42bbb58718f87aedb133"> 147</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a>* <a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5c0fd56a2f0c42bbb58718f87aedb133">TkFrameworkImpl::findObjectByIDInternal</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> entry = m_IDToObject.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span> (entry == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> entry-&gt;second;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKFRAMEWORKIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_framework_impl_html_a62cf99de17faea824364a987b165a1eb"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a62cf99de17faea824364a987b165a1eb">Nv::Blast::TkFrameworkImpl::createGroup</a></div><div class="ttdeci">virtual TkGroup * createGroup(const TkGroupDesc &amp;desc) override</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_framework_impl_html_a4332119be0c96bc812f2911cb9528ffd"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a4332119be0c96bc812f2911cb9528ffd">Nv::Blast::TkFrameworkImpl::getObjectCount</a></div><div class="ttdeci">virtual uint32_t getObjectCount(const TkType &amp;type) const override</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_framework_impl_html_a5da9dfe8dc817432877ab39647d11daa"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_framework_impl.html#a5da9dfe8dc817432877ab39647d11daa">Nv::Blast::TkFrameworkImpl::onIDChange</a></div><div class="ttdeci">void onIDChange(TkIdentifiable &amp;object, const NvBlastID &amp;IDPrev, const NvBlastID &amp;IDCurr)</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_g_u_i_d_8h_source.html b/docs/source_docs/files/_nv_blast_tk_g_u_i_d_8h_source.html
index 1d90b6e..8cefb93 100755
--- a/docs/source_docs/files/_nv_blast_tk_g_u_i_d_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_g_u_i_d_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_g_u_i_d_8h_source.html','
<div class="title">NvBlastTkGUID.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_g_u_i_d_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGUID_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGUID_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;rpc.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//#include &lt;uuid/uuid.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_time_8h.html">NvBlastTime.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;PsHash.h&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="namespace_nv_1_1_blast.html#a69ce6c22d6a698e3f3f27bdcf9f33e5d">TkGenerateGUID</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a>(ptr);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(UUID) == <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> guid;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; UuidCreate(reinterpret_cast&lt;UUID*&gt;(&amp;guid));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> guid;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a69ce6c22d6a698e3f3f27bdcf9f33e5d"> 64</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="namespace_nv_1_1_blast.html#a69ce6c22d6a698e3f3f27bdcf9f33e5d">TkGenerateGUID</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// NV_COMPILE_TIME_ASSERT(sizeof(uuid_t) == sizeof(NvBlastID));</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_time.html">Time</a> time;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> guid;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// uuid_generate_random(reinterpret_cast&lt;uuid_t&amp;&gt;(guid));</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; *<span class="keyword">reinterpret_cast&lt;</span>uint64_t*<span class="keyword">&gt;</span>(guid.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>) = reinterpret_cast&lt;uintptr_t&gt;(ptr);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; *<span class="keyword">reinterpret_cast&lt;</span>int64_t*<span class="keyword">&gt;</span>(guid.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a> + 8) = time.<a class="code" href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">getLastTickCount</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> guid;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a6bbc50004fa477cdc0bc27dc53dae357"> 89</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a6bbc50004fa477cdc0bc27dc53dae357">TkGUIDsEqual</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* id1, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* id2)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> !memcmp(id1, id2, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#afc71941ff8c9e1c64c224e30985731bd"> 100</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#afc71941ff8c9e1c64c224e30985731bd">TkGUIDReset</a>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; memset(<span class="keywordtype">id</span>, 0, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a1aabd5393ff99f0af4851a594f766a01"> 112</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a1aabd5393ff99f0af4851a594f766a01">TkGUIDIsZero</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint64_t*<span class="keyword">&gt;</span>(&amp;<span class="keywordtype">id</span>-&gt;data[0]) == 0 &amp;&amp; *reinterpret_cast&lt;const uint64_t*&gt;(&amp;id-&gt;<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>[8]) == 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespacephysx_1_1shdfnd.html"> 123</a></span>&#160;<span class="keyword">namespace </span>shdfnd</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// hash specialization for NvBlastID</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html"> 128</a></span>&#160;<span class="keyword">struct </span>Hash&lt;<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a87c43f402b63e1e206f25fad5ce999dc"> 130</a></span>&#160; uint32_t <a class="code" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a87c43f402b63e1e206f25fad5ce999dc">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; k)<span class="keyword"> const</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// &quot;DJB&quot; string hash</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint32_t h = 5381;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; <span class="keyword">sizeof</span>(k.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>) / <span class="keyword">sizeof</span>(k.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>[0]); ++i)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; h = ((h &lt;&lt; 5) + h) ^ uint32_t(k.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>[i]);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> h;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a29ae0bd690b9e06dd21b72e072fd9ccb"> 138</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a29ae0bd690b9e06dd21b72e072fd9ccb">equal</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; k0, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; k1)<span class="keyword"> const</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a6bbc50004fa477cdc0bc27dc53dae357">Nv::Blast::TkGUIDsEqual</a>(&amp;k0, &amp;k1);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace shdfnd</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTTKGUID_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
+<a href="_nv_blast_tk_g_u_i_d_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGUID_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGUID_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;rpc.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//#include &lt;uuid/uuid.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_time_8h.html">NvBlastTime.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;PsHash.h&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="namespace_nv_1_1_blast.html#a69ce6c22d6a698e3f3f27bdcf9f33e5d">TkGenerateGUID</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a>(ptr);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a>(<span class="keyword">sizeof</span>(UUID) == <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> guid;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; UuidCreate(reinterpret_cast&lt;UUID*&gt;(&amp;guid));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> guid;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a69ce6c22d6a698e3f3f27bdcf9f33e5d"> 64</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> <a class="code" href="namespace_nv_1_1_blast.html#a69ce6c22d6a698e3f3f27bdcf9f33e5d">TkGenerateGUID</a>(<span class="keywordtype">void</span>* ptr)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// NV_COMPILE_TIME_ASSERT(sizeof(uuid_t) == sizeof(NvBlastID));</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_time.html">Time</a> time;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a> guid;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// uuid_generate_random(reinterpret_cast&lt;uuid_t&amp;&gt;(guid));</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; *<span class="keyword">reinterpret_cast&lt;</span>uint64_t*<span class="keyword">&gt;</span>(guid.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>) = reinterpret_cast&lt;uintptr_t&gt;(ptr);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; *<span class="keyword">reinterpret_cast&lt;</span>int64_t*<span class="keyword">&gt;</span>(guid.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a> + 8) = time.<a class="code" href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">getLastTickCount</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> guid;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a6bbc50004fa477cdc0bc27dc53dae357"> 89</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a6bbc50004fa477cdc0bc27dc53dae357">TkGUIDsEqual</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* id1, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* id2)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> !memcmp(id1, id2, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#afc71941ff8c9e1c64c224e30985731bd"> 100</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#afc71941ff8c9e1c64c224e30985731bd">TkGUIDReset</a>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; memset(<span class="keywordtype">id</span>, 0, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a1aabd5393ff99f0af4851a594f766a01"> 112</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="namespace_nv_1_1_blast.html#a1aabd5393ff99f0af4851a594f766a01">TkGUIDIsZero</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>* <span class="keywordtype">id</span>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint64_t*<span class="keyword">&gt;</span>(&amp;<span class="keywordtype">id</span>-&gt;data[0]) == 0 &amp;&amp; *reinterpret_cast&lt;const uint64_t*&gt;(&amp;id-&gt;<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>[8]) == 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacephysx.html">physx</a></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespacephysx_1_1shdfnd.html"> 123</a></span>&#160;<span class="keyword">namespace </span>shdfnd</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// hash specialization for NvBlastID</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html"> 128</a></span>&#160;<span class="keyword">struct </span>Hash&lt;<a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a87c43f402b63e1e206f25fad5ce999dc"> 130</a></span>&#160; uint32_t <a class="code" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a87c43f402b63e1e206f25fad5ce999dc">operator()</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; k)<span class="keyword"> const</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// &quot;DJB&quot; string hash</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint32_t h = 5381;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; <span class="keyword">sizeof</span>(k.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>) / <span class="keyword">sizeof</span>(k.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>[0]); ++i)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; h = ((h &lt;&lt; 5) + h) ^ uint32_t(k.<a class="code" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8">data</a>[i]);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> h;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a29ae0bd690b9e06dd21b72e072fd9ccb"> 138</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structphysx_1_1shdfnd_1_1_hash_3_01_nv_blast_i_d_01_4.html#a29ae0bd690b9e06dd21b72e072fd9ccb">equal</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; k0, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; k1)<span class="keyword"> const</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespace_nv_1_1_blast.html#a6bbc50004fa477cdc0bc27dc53dae357">Nv::Blast::TkGUIDsEqual</a>(&amp;k0, &amp;k1);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;} <span class="comment">// namespace shdfnd</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">// namespace physx</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif // #ifndef NVBLASTTKGUID_H</span></div><div class="ttc" id="namespacephysx_html"><div class="ttname"><a href="namespacephysx.html">physx</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtApexSharedParts.h:34</div></div>
<div class="ttc" id="group__foundation_html_ga75e36581442a14a7187644fd92b799f5"><div class="ttname"><a href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a></div><div class="ttdeci">#define NV_COMPILE_TIME_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:444</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_time_html_a440cea5bd7d09b6313189bb11ccfe526"><div class="ttname"><a href="class_nv_1_1_blast_1_1_time.html#a440cea5bd7d09b6313189bb11ccfe526">Nv::Blast::Time::getLastTickCount</a></div><div class="ttdeci">int64_t getLastTickCount() const</div><div class="ttdef"><b>Definition:</b> NvBlastTime.h:57</div></div>
<div class="ttc" id="group__foundation_html_ga6739a1df7c5ae91e0d759cb4481b84dd"><div class="ttname"><a href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a></div><div class="ttdeci">NV_CUDA_CALLABLE NV_INLINE void NV_UNUSED(T const &amp;)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:476</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_group_8h_source.html b/docs/source_docs/files/_nv_blast_tk_group_8h_source.html
index 434bf8f..dba12c3 100755
--- a/docs/source_docs/files/_nv_blast_tk_group_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_group_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_group_8h_source.html','')
<div class="title">NvBlastTkGroup.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_group_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>; </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63"> 60</a></span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63">timers</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3">processedActorsCount</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0"> 62</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0">workerTime</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group_worker.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> process(uint32_t jobId) = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html"> 101</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> uint32_t startProcess() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> endProcess() = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorkerCount(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>) = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> uint32_t getWorkerCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* acquireWorker() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> returnWorker(<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>*) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> process();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9"> 194</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9">Nv::Blast::TkGroup::process</a>()</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint32_t jobCount = startProcess();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (jobCount &gt; 0)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* worker = acquireWorker();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; jobCount; i++)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; worker-&gt;<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">process</a>(i);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; returnWorker(worker);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; endProcess();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKGROUP_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_tk_group_desc_html_ae54fdf33182bd2f481e70c9a05976d48"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">Nv::Blast::TkGroupDesc::workerCount</a></div><div class="ttdeci">uint32_t workerCount</div><div class="ttdoc">The number of expected TkWorkers to process the TkGroup concurrently. </div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:50</div></div>
+<a href="_nv_blast_tk_group_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGROUP_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_identifiable_8h.html">NvBlastTkIdentifiable.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>TkActor;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html"> 48</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48"> 50</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>; </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63"> 60</a></span>&#160; <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a56d10b130bec08fbebd96fa22c1d9e63">timers</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3"> 61</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a6223e0ddf13688cc1abc1aeb1a152fb3">processedActorsCount</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0"> 62</a></span>&#160; int64_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html#a52eb102c439a0daefca7f2099a18c2a0">workerTime</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group_worker.html"> 74</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> process(uint32_t jobId) = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html"> 101</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_group.html">TkGroup</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor) = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> uint32_t startProcess() = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> endProcess() = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorkerCount(uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">workerCount</a>) = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> uint32_t getWorkerCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* acquireWorker() = 0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> returnWorker(<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>*) = 0;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> process();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9"> 194</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9">Nv::Blast::TkGroup::process</a>()</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint32_t jobCount = startProcess();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (jobCount &gt; 0)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* worker = acquireWorker();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; jobCount; i++)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; worker-&gt;<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">process</a>(i);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; returnWorker(worker);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; endProcess();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKGROUP_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_tk_group_desc_html_ae54fdf33182bd2f481e70c9a05976d48"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_group_desc.html#ae54fdf33182bd2f481e70c9a05976d48">Nv::Blast::TkGroupDesc::workerCount</a></div><div class="ttdeci">uint32_t workerCount</div><div class="ttdoc">The number of expected TkWorkers to process the TkGroup concurrently. </div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:50</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_group_html_ae207854ae3e30047c6347f9fd3e7a3b9"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_group.html#ae207854ae3e30047c6347f9fd3e7a3b9">Nv::Blast::TkGroup::process</a></div><div class="ttdeci">void process()</div><div class="ttdef"><b>Definition:</b> NvBlastTkGroup.h:194</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_group_worker_html_adf15d994a12f0c0b18dd0a878b1ddd2f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_group_worker.html#adf15d994a12f0c0b18dd0a878b1ddd2f">Nv::Blast::TkGroupWorker::process</a></div><div class="ttdeci">virtual void process(uint32_t jobId)=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_group_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_group_impl_8h_source.html
index 2993c78..ed745b9 100755
--- a/docs/source_docs/files/_nv_blast_tk_group_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_group_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_group_impl_8h_source.html
<div class="title">NvBlastTkGroupImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_group_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGROUPIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGROUPIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_task_impl_8h.html">NvBlastTkTaskImpl.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_impl_8h.html">NvBlastTkTypeImpl.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>TkActorImpl;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a89bee84de4e3d076ebe18bd9a659378b"> 46</a></span>&#160;<a class="code" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c">NVBLASTTK_IMPL_DECLARE</a>(Group)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; ~TkGroupImpl();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; TkGroupImpl();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5">NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE</a>(<span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;\0&#39;</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> TkGroupImpl* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Begin TkGroup</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor) <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> uint32_t startProcess() <span class="keyword">override</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> endProcess() <span class="keyword">override</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats) <span class="keyword">const override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorkerCount(uint32_t workerCount) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> uint32_t getWorkerCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* acquireWorker() <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> returnWorker(<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>*) <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// End TkGroup</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// TkGroupImpl API</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">bool</span> removeActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> enqueue(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* tkActor);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">bool</span> isProcessing() <span class="keyword">const</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">bool</span> setProcessing(<span class="keywordtype">bool</span> value);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* getSharedMemory(TkFamilyImpl* family);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> releaseSharedMemory(TkFamilyImpl* fam, <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* mem);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// functions to add/remove actors _without_ group-family memory management</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> addActorInternal(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; tkActor);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> addActorsInternal(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>** actors, uint32_t numActors);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> removeActorInternal(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; tkActor);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t m_actorCount; </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;TkFamilyImpl*, SharedMemory*&gt;::type</a> m_sharedMemory; </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// it is assumed no more than the asset&#39;s number of bond and chunks fracture commands are produced</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastChunkFractureData&gt;</a> m_chunkTempDataBlock; </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastBondFractureData&gt;</a> m_bondTempDataBlock; </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastChunkFractureData&gt;</a> m_chunkEventDataBlock; </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastBondFractureData&gt;</a> m_bondEventDataBlock; </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;char&gt;</a> m_splitScratchBlock; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; std::atomic&lt;bool&gt; m_isProcessing; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkWorker&gt;::type</a> m_workers; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkWorkerJob&gt;::type</a> m_jobs; </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">//#if NV_PROFILE</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a> m_stats; </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">//#endif</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; std::mutex m_workerMtx;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html">TkWorker</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;};</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> TkGroupImpl::isProcessing()<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> m_isProcessing.load();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkGroupImpl::getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats)<span class="keyword"> const</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#if NV_PROFILE</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; memcpy(&amp;stats, &amp;m_stats, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a>(stats);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkGroupImpl::getActorCount()<span class="keyword"> const</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> m_actorCount;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* TkGroupImpl::getSharedMemory(TkFamilyImpl* family)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* mem = m_sharedMemory[family];</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(mem != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> mem;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ac98948d4d2e512d9b7717d290e3cc683"> 180</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#ac98948d4d2e512d9b7717d290e3cc683">operator +=</a>(<a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>&amp; rhs)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00">island</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKGROUPIMPL_H</span></div><div class="ttc" id="struct_nv_blast_timers_html_a3d28ae3da5c758181deb2bbad75fab3d"><div class="ttname"><a href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">NvBlastTimers::fracture</a></div><div class="ttdeci">int64_t fracture</div><div class="ttdoc">Time spent applying damage. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:88</div></div>
+<a href="_nv_blast_tk_group_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKGROUPIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKGROUPIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_task_impl_8h.html">NvBlastTkTaskImpl.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_impl_8h.html">NvBlastTkTypeImpl.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>TkActorImpl;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#a89bee84de4e3d076ebe18bd9a659378b"> 46</a></span>&#160;<a class="code" href="namespace_nv_1_1_blast.html#aca102609a1dbb309353ddc72644f131c">NVBLASTTK_IMPL_DECLARE</a>(Group)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; ~TkGroupImpl();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; TkGroupImpl();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="_nv_blast_tk_common_8h.html#adc9deb5a641537a8c6dc144d6c8279b5">NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE</a>(<span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;\0&#39;</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> TkGroupImpl* create(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_desc.html">TkGroupDesc</a>&amp; desc);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Begin TkGroup</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> addActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor) <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> uint32_t getActorCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> uint32_t getActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** buffer, uint32_t bufferSize, uint32_t indexStart = 0) <span class="keyword">const override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> uint32_t startProcess() <span class="keyword">override</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> endProcess() <span class="keyword">override</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats) <span class="keyword">const override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorkerCount(uint32_t workerCount) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> uint32_t getWorkerCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>* acquireWorker() <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> returnWorker(<a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a>*) <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// End TkGroup</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// TkGroupImpl API</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">bool</span> removeActor(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>&amp; actor);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> enqueue(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* tkActor);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">bool</span> isProcessing() <span class="keyword">const</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">bool</span> setProcessing(<span class="keywordtype">bool</span> value);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* getSharedMemory(TkFamilyImpl* family);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> releaseSharedMemory(TkFamilyImpl* fam, <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* mem);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// functions to add/remove actors _without_ group-family memory management</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> addActorInternal(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; tkActor);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> addActorsInternal(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>** actors, uint32_t numActors);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> removeActorInternal(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>&amp; tkActor);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t m_actorCount; </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_hash_map.html#a959b6d3c31a9f21ed69f0cfcade20d3f">HashMap&lt;TkFamilyImpl*, SharedMemory*&gt;::type</a> m_sharedMemory; </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// it is assumed no more than the asset&#39;s number of bond and chunks fracture commands are produced</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastChunkFractureData&gt;</a> m_chunkTempDataBlock; </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastBondFractureData&gt;</a> m_bondTempDataBlock; </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastChunkFractureData&gt;</a> m_chunkEventDataBlock; </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;NvBlastBondFractureData&gt;</a> m_bondEventDataBlock; </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock&lt;char&gt;</a> m_splitScratchBlock; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; std::atomic&lt;bool&gt; m_isProcessing; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkWorker&gt;::type</a> m_workers; </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_array.html#a94fd490890f7c6e45784fd43eb14e260">Array&lt;TkWorkerJob&gt;::type</a> m_jobs; </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">//#if NV_PROFILE</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a> m_stats; </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">//#endif</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; std::mutex m_workerMtx;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html">TkWorker</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;};</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> TkGroupImpl::isProcessing()<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> m_isProcessing.load();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkGroupImpl::getStats(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>&amp; stats)<span class="keyword"> const</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#if NV_PROFILE</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; memcpy(&amp;stats, &amp;m_stats, <span class="keyword">sizeof</span>(<a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a>));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a>(stats);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t TkGroupImpl::getActorCount()<span class="keyword"> const</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> m_actorCount;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* TkGroupImpl::getSharedMemory(TkFamilyImpl* family)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a>* mem = m_sharedMemory[family];</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(mem != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> mem;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="namespace_nv_1_1_blast.html#ac98948d4d2e512d9b7717d290e3cc683"> 180</a></span>&#160;<a class="code" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e">NV_FORCE_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#ac98948d4d2e512d9b7717d290e3cc683">operator +=</a>(<a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a>&amp; rhs)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00">island</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; lhs.<a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a> += rhs.<a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKGROUPIMPL_H</span></div><div class="ttc" id="struct_nv_blast_timers_html_a3d28ae3da5c758181deb2bbad75fab3d"><div class="ttname"><a href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">NvBlastTimers::fracture</a></div><div class="ttdeci">int64_t fracture</div><div class="ttdoc">Time spent applying damage. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:88</div></div>
<div class="ttc" id="group__foundation_html_ga6739a1df7c5ae91e0d759cb4481b84dd"><div class="ttname"><a href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a></div><div class="ttdeci">NV_CUDA_CALLABLE NV_INLINE void NV_UNUSED(T const &amp;)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:476</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor_impl.html">Nv::Blast::TkActorImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActorImpl.h:75</div></div>
<div class="ttc" id="_nv_blast_tk_task_impl_8h_html"><div class="ttname"><a href="_nv_blast_tk_task_impl_8h.html">NvBlastTkTaskImpl.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_identifiable_8h_source.html b/docs/source_docs/files/_nv_blast_tk_identifiable_8h_source.html
index be210b5..e9497b6 100755
--- a/docs/source_docs/files/_nv_blast_tk_identifiable_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_identifiable_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_identifiable_8h_source.ht
<div class="title">NvBlastTkIdentifiable.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_identifiable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkType;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// Identifiable API</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a610a75ccff6579e5e54a59f2840f6630">getID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a630e37302f7c8747373431d747415642">setID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">getType</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4"> 77</a></span>&#160; uint64_t <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4">userIntData</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_identifiable_html_ad156c3e85ee665c251e26ac86d3cf03b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">Nv::Blast::TkIdentifiable::getType</a></div><div class="ttdeci">virtual const TkType &amp; getType() const =0</div></div>
+<a href="_nv_blast_tk_identifiable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKIDENTIFIABLE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>TkType;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html">TkIdentifiable</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// Identifiable API</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a610a75ccff6579e5e54a59f2840f6630">getID</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a630e37302f7c8747373431d747415642">setID</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a>&amp; <span class="keywordtype">id</span>) = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">getType</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4"> 77</a></span>&#160; uint64_t <a class="code" href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4">userIntData</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKIDENTIFIABLE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_identifiable_html_ad156c3e85ee665c251e26ac86d3cf03b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_identifiable.html#ad156c3e85ee665c251e26ac86d3cf03b">Nv::Blast::TkIdentifiable::getType</a></div><div class="ttdeci">virtual const TkType &amp; getType() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_identifiable_html_a65dbac714ebfdc9f0a4d7a905bbbcdf4"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_identifiable.html#a65dbac714ebfdc9f0a4d7a905bbbcdf4">Nv::Blast::TkIdentifiable::userIntData</a></div><div class="ttdeci">uint64_t userIntData</div><div class="ttdef"><b>Definition:</b> NvBlastTkIdentifiable.h:77</div></div>
<div class="ttc" id="_nv_blast_tk_object_8h_html"><div class="ttname"><a href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a></div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_joint_8h_source.html b/docs/source_docs/files/_nv_blast_tk_joint_8h_source.html
index 1da1eda..5d6f814 100755
--- a/docs/source_docs/files/_nv_blast_tk_joint_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_joint_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_joint_8h_source.html','')
<div class="title">NvBlastTkJoint.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_joint_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896">actors</a>[2]; </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5"> 48</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5">chunkIndices</a>[2]; </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d"> 49</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d">attachPositions</a>[2]; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> getData() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKJOINT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint.html">Nv::Blast::TkJoint</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:63</div></div>
+<a href="_nv_blast_tk_joint_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKJOINT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896">actors</a>[2]; </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5"> 48</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#a9d70c2dfe965350822d9b651436f32d5">chunkIndices</a>[2]; </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d"> 49</a></span>&#160; physx::PxVec3 <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html#acd1894619d5abd13a48e57833736ed3d">attachPositions</a>[2]; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> getData() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKJOINT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint.html">Nv::Blast::TkJoint</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:63</div></div>
<div class="ttc" id="_nv_blast_tk_object_8h_html"><div class="ttname"><a href="_nv_blast_tk_object_8h.html">NvBlastTkObject.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_joint_data_html_abed941edd9f9d14c7dd8e25b4fa6d896"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_joint_data.html#abed941edd9f9d14c7dd8e25b4fa6d896">Nv::Blast::TkJointData::actors</a></div><div class="ttdeci">TkActor * actors[2]</div><div class="ttdoc">The TkActor objects joined by the joint. </div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:47</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor.html">Nv::Blast::TkActor</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActor.h:57</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_joint_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_joint_impl_8h_source.html
index 976b3f5..77aabd2 100755
--- a/docs/source_docs/files/_nv_blast_tk_joint_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_joint_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_joint_impl_8h_source.html
<div class="title">NvBlastTkJointImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_joint_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKJOINTIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKJOINTIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkActorImpl;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>TkJointImpl;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>TkEventQueue;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_link.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_link.html#ab23a4bfae32dbb42019d822386610b9c"> 60</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html#ab23a4bfae32dbb42019d822386610b9c">m_joint</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc, TkFamilyImpl* owner);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Begin TkObject</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// End TkObject</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Begin TkJoint</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> getData() <span class="keyword">const override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// End TkJoint</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Public API</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; getDataInternal() <span class="keyword">const</span>; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; getDataWritable();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> setActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actor0, <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actor1, <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a>* alternateQueue = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> removeReferencesInActors();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> removeReferencesInFamilies();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> m_data; </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a> m_links[2]; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; TkFamilyImpl* m_owner; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#ab3dc3d8e38a1518e1215c39f55db6851"> 135</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a2e913a71937c6b28e28abab3012c69f1"> 136</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a2644aa113816ee6154891339e7a08b7f"> 137</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a58b0c46c171b39333effc5cf0b66c7cb"> 143</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a58b0c46c171b39333effc5cf0b66c7cb">TkJointImpl::TkJointImpl</a>()</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_links[0].m_joint = m_links[1].m_joint = <span class="keyword">this</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a8bd7f947a8f31772893631d059580340"> 149</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a8bd7f947a8f31772893631d059580340">TkJointImpl::getDataInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> m_data;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a43ed13ea1980332307c47cab29a0b0bf"> 155</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a43ed13ea1980332307c47cab29a0b0bf">TkJointImpl::getDataWritable</a>()</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> m_data;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKJOINTIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_impl_html_a8bd7f947a8f31772893631d059580340"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a8bd7f947a8f31772893631d059580340">Nv::Blast::TkJointImpl::getDataInternal</a></div><div class="ttdeci">const TkJointData &amp; getDataInternal() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkJointImpl.h:149</div></div>
+<a href="_nv_blast_tk_joint_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKJOINTIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKJOINTIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_joint_8h.html">NvBlastTkJoint.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_common_8h.html">NvBlastTkCommon.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_index_fns_8h.html">NvBlastIndexFns.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_d_link_8h.html">NvBlastDLink.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Forward declarations</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span>TkActorImpl;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span>TkJointImpl;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>TkEventQueue;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_link.html"> 58</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a> : <span class="keyword">public</span> <a class="code" href="struct_nv_1_1_blast_1_1_d_link.html">DLink</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_joint_link.html#ab23a4bfae32dbb42019d822386610b9c"> 60</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html#ab23a4bfae32dbb42019d822386610b9c">m_joint</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint.html">TkJoint</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html">TkJointImpl</a>(<span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_desc.html">TkJointDesc</a>&amp; desc, TkFamilyImpl* owner);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Begin TkObject</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() <span class="keyword">override</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// End TkObject</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Begin TkJoint</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> getData() <span class="keyword">const override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// End TkJoint</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Public API</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; getDataInternal() <span class="keyword">const</span>; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; getDataWritable();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> setActors(<a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actor0, <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* actor1, <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a>* alternateQueue = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> removeReferencesInActors();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> removeReferencesInFamilies();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a> m_data; </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_link.html">TkJointLink</a> m_links[2]; </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; TkFamilyImpl* m_owner; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#ab3dc3d8e38a1518e1215c39f55db6851"> 135</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a2e913a71937c6b28e28abab3012c69f1"> 136</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a2644aa113816ee6154891339e7a08b7f"> 137</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;};</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a58b0c46c171b39333effc5cf0b66c7cb"> 143</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a58b0c46c171b39333effc5cf0b66c7cb">TkJointImpl::TkJointImpl</a>()</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_links[0].m_joint = m_links[1].m_joint = <span class="keyword">this</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a8bd7f947a8f31772893631d059580340"> 149</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a8bd7f947a8f31772893631d059580340">TkJointImpl::getDataInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> m_data;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a43ed13ea1980332307c47cab29a0b0bf"> 155</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="struct_nv_1_1_blast_1_1_tk_joint_data.html">TkJointData</a>&amp; <a class="code" href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a43ed13ea1980332307c47cab29a0b0bf">TkJointImpl::getDataWritable</a>()</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> m_data;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKJOINTIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_impl_html_a8bd7f947a8f31772893631d059580340"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint_impl.html#a8bd7f947a8f31772893631d059580340">Nv::Blast::TkJointImpl::getDataInternal</a></div><div class="ttdeci">const TkJointData &amp; getDataInternal() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkJointImpl.h:149</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_actor_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_actor_impl.html">Nv::Blast::TkActorImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkActorImpl.h:75</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_joint_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_joint.html">Nv::Blast::TkJoint</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkJoint.h:63</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_tk_joint_link_html_ab23a4bfae32dbb42019d822386610b9c"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_tk_joint_link.html#ab23a4bfae32dbb42019d822386610b9c">Nv::Blast::TkJointLink::m_joint</a></div><div class="ttdeci">TkJointImpl * m_joint</div><div class="ttdoc">The joint containing this link. </div><div class="ttdef"><b>Definition:</b> NvBlastTkJointImpl.h:60</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_object_8h_source.html b/docs/source_docs/files/_nv_blast_tk_object_8h_source.html
index 5596baa..b65fbab 100755
--- a/docs/source_docs/files/_nv_blast_tk_object_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_object_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_object_8h_source.html',''
<div class="title">NvBlastTkObject.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7">TkObject</a>() : <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>(nullptr) {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Object API</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a848b4a7ade17edc49a071c472cbfad12">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90"> 60</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90">~TkObject</a>() {}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42"> 68</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKOBJECT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html">Nv::Blast::TkObject</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:41</div></div>
+<a href="_nv_blast_tk_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKOBJECT_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_object.html">TkObject</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7"> 47</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a6746d0ad843d41fe3a95a75c2787e8a7">TkObject</a>() : <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>(nullptr) {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Object API</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a848b4a7ade17edc49a071c472cbfad12">release</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90"> 60</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90">~TkObject</a>() {}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Data</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42"> 68</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">userData</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKOBJECT_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html">Nv::Blast::TkObject</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:41</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html_a04f1d2051fa4885ba934cf138f7c2b90"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html#a04f1d2051fa4885ba934cf138f7c2b90">Nv::Blast::TkObject::~TkObject</a></div><div class="ttdeci">virtual ~TkObject()</div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:60</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html_a848b4a7ade17edc49a071c472cbfad12"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html#a848b4a7ade17edc49a071c472cbfad12">Nv::Blast::TkObject::release</a></div><div class="ttdeci">virtual void release()=0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_object_html_ae1a1d9f53d372a748f615fc47b730a42"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_object.html#ae1a1d9f53d372a748f615fc47b730a42">Nv::Blast::TkObject::userData</a></div><div class="ttdeci">void * userData</div><div class="ttdef"><b>Definition:</b> NvBlastTkObject.h:68</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_task_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_task_impl_8h_source.html
index 2a1fd08..f68451c 100755
--- a/docs/source_docs/files/_nv_blast_tk_task_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_task_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_task_impl_8h_source.html'
<div class="title">NvBlastTkTaskImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_task_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTASKIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTASKIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_impl_8h.html">NvBlastTkFrameworkImpl.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_queue_8h.html">NvBlastTkEventQueue.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span> <span class="comment">// TkGroupStats</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>TkActorImpl;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html">TkWorkerJob</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#a52754f8fd3ce679380fb13a3549fd8d1"> 62</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#a52754f8fd3ce679380fb13a3549fd8d1">m_tkActor</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#afbf6999089abcfac1871f151217f1f91"> 63</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>** <a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#afbf6999089abcfac1871f151217f1f91">m_newActors</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#ae3881de93a5f5224791f6f87f94f3f96"> 64</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#ae3881de93a5f5224791f6f87f94f3f96">m_newActorsCount</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html"> 75</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#af891a9a802158ef8119000edd6ab7e61"> 79</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#af891a9a802158ef8119000edd6ab7e61">SharedBlock</a>() : m_numElementsPerBlock(0), m_numBlocks(0), m_buffer(nullptr) {}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#af83d17680afb4c8b03eb3fa81f79255d"> 84</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#af83d17680afb4c8b03eb3fa81f79255d">allocate</a>(uint32_t elementsPerBlock, uint32_t numBlocks)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(elementsPerBlock &gt; 0 &amp;&amp; numBlocks &gt; 0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_buffer = <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(<a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(elementsPerBlock*numBlocks*<span class="keyword">sizeof</span>(T), <span class="stringliteral">&quot;SharedBlock&quot;</span>));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_numElementsPerBlock = elementsPerBlock;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_numBlocks = numBlocks;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#ac4a8aaca694b9a5a4c9264c471b76fd9"> 96</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#ac4a8aaca694b9a5a4c9264c471b76fd9">getBlock</a>(uint32_t <span class="keywordtype">id</span>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<span class="keywordtype">id</span> &lt; m_numBlocks || 0 == m_numElementsPerBlock);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> &amp;m_buffer[<span class="keywordtype">id</span>*m_numElementsPerBlock];</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#a482be96159ba7e7b58f7ae734284eea5"> 105</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#a482be96159ba7e7b58f7ae734284eea5">numElementsPerBlock</a>()<span class="keyword"> const </span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> m_numElementsPerBlock; </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#acbd14a848ce470167c84416571c9689b"> 113</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#acbd14a848ce470167c84416571c9689b">release</a>()</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_numBlocks = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_numElementsPerBlock = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(m_buffer);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_buffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; uint32_t m_numElementsPerBlock; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t m_numBlocks; </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; T* m_buffer; </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;};</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html"> 135</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html">SharedBuffer</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a195ce955812bc778caf44c6211f004ca"> 138</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a195ce955812bc778caf44c6211f004ca">SharedBuffer</a>() : m_capacity(0), m_used(0), m_buffer(nullptr) {}</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a88ffb1cd3b27fdce82b96073efe261c3"> 143</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a88ffb1cd3b27fdce82b96073efe261c3">reserve</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_used + n &lt;= m_capacity);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">size_t</span> start = m_used.fetch_add(n);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> &amp;m_buffer[start];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7ee955ac7695f8167d74aa060bfe6492"> 153</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7ee955ac7695f8167d74aa060bfe6492">allocate</a>(<span class="keywordtype">size_t</span> capacity)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_buffer == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_buffer = <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(<a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(capacity*<span class="keyword">sizeof</span>(T), <span class="stringliteral">&quot;SplitMemory&quot;</span>));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_capacity = capacity;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a712ca47f2a2fc95f769951994ca66ecc"> 163</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a712ca47f2a2fc95f769951994ca66ecc">reset</a>()</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_used = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7be2a8e72803a3ea16afefb7d8b0bde5"> 171</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7be2a8e72803a3ea16afefb7d8b0bde5">release</a>()</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_buffer != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(m_buffer);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_buffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_capacity = m_used = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">size_t</span> m_capacity; </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::atomic&lt;size_t&gt; m_used; </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; T* m_buffer; </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html"> 191</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html">LocalBuffer</a></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html#adcd31b00a02dfa4df22a5191ec1bc208"> 198</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html#adcd31b00a02dfa4df22a5191ec1bc208">allocate</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (m_used + n &gt; m_capacity)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; allocateNewBlock(n &gt; m_capacity ? n : m_capacity);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">size_t</span> index = m_used;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_used += n;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> &amp;m_currentBlock[index];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html#a75ddcb70c161b0744d9ec8e1b5a91ff4"> 214</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html#a75ddcb70c161b0744d9ec8e1b5a91ff4">clear</a>()</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">void</span>* block : m_memoryBlocks)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(block);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_memoryBlocks.clear();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html#a5e9d8e27765fd724569ce06d4b1cc617"> 227</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html#a5e9d8e27765fd724569ce06d4b1cc617">initialize</a>(T* block, <span class="keywordtype">size_t</span> capacity)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; m_currentBlock = block;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_capacity = capacity;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_used = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">void</span> allocateNewBlock(<span class="keywordtype">size_t</span> capacity)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="_nv_blast_profiler_internal_8h.html#aaba578d5cd160859cd514c33ac6171a5">BLAST_PROFILE_SCOPE_L</a>(<span class="stringliteral">&quot;Local Buffer allocation&quot;</span>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_capacity = capacity;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_currentBlock = <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(<a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(capacity*<span class="keyword">sizeof</span>(T), <span class="stringliteral">&quot;Blast LocalBuffer&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_memoryBlocks.pushBack(m_currentBlock);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_used = 0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray&lt;void*, 4&gt;::type</a> m_memoryBlocks; </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; T* m_currentBlock; </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">size_t</span> m_used; </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">size_t</span> m_capacity; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;};</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html"> 257</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a399aac38cf540e274ba36ca20358d182"> 260</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a399aac38cf540e274ba36ca20358d182">SharedMemory</a>() : m_eventsMemory(0), m_eventsCount(0), m_refCount(0) {}</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a325448e388c46c916953cfe95b51f567"> 265</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a325448e388c46c916953cfe95b51f567">reserveNewActors</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> m_newActorBuffers.reserve(n);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a6cdea8e6eeb26aa1fff1ba5ef8d48c98"> 273</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a6cdea8e6eeb26aa1fff1ba5ef8d48c98">reserveNewTkActors</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> m_newTkActorBuffers.reserve(n);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordtype">void</span> allocate(TkFamilyImpl&amp;);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a69e13453e62cdaf8b2e8c5b9743f9b56"> 287</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a69e13453e62cdaf8b2e8c5b9743f9b56">reset</a>()</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; m_newActorBuffers.reset();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_newTkActorBuffers.reset();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a75c598b9405193ab7c8ad2553aacae39"> 296</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a75c598b9405193ab7c8ad2553aacae39">addReference</a>() { m_refCount++; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a18714f82b39e9a17c94541c31dc1b0bd"> 301</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a18714f82b39e9a17c94541c31dc1b0bd">addReference</a>(<span class="keywordtype">size_t</span> n) { m_refCount += n; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a795a2be3de022efc1bac6559db0baafe"> 307</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a795a2be3de022efc1bac6559db0baafe">removeReference</a>()</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_refCount--;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> !isUsed();</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a18a846a728fd84375fdc87198e2cdda0"> 316</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a18a846a728fd84375fdc87198e2cdda0">isUsed</a>()</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> m_refCount &gt; 0;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a769339a919c9709708ea28b7dcac1e64"> 324</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a769339a919c9709708ea28b7dcac1e64">release</a>()</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; m_newActorBuffers.release();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_newTkActorBuffers.release();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#aa0cbd70359cd6c1e09e6acaa103bdecf"> 330</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#aa0cbd70359cd6c1e09e6acaa103bdecf">m_events</a>; </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#ae8651b026da2fc7ce41f4f9711d5f4dd"> 331</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#ae8651b026da2fc7ce41f4f9711d5f4dd">m_eventsMemory</a>; </div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a3fcf06b114621282a264aa4b8bef66a9"> 332</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a3fcf06b114621282a264aa4b8bef66a9">m_eventsCount</a>; </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordtype">size_t</span> m_refCount; </div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html">SharedBuffer&lt;NvBlastActor*&gt;</a> m_newActorBuffers; </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html">SharedBuffer&lt;TkActor*&gt;</a> m_newTkActorBuffers; </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;};</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html"> 346</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html">TkWorker</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a8a6e2befae56e76d58c5b8158b6baa4c"> 349</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a8a6e2befae56e76d58c5b8158b6baa4c">TkWorker</a>() : m_id(~(uint32_t)0), m_group(nullptr), m_isBusy(false) {}</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">void</span> process(uint32_t jobID);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">void</span> initialize();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">void</span> process(<a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html">TkWorkerJob</a>&amp; job);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a545667052e4dd46e956baa23cb0f8855"> 356</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a545667052e4dd46e956baa23cb0f8855">m_id</a>; </div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#ab396e794061650eccbaa634ababc3816"> 357</a></span>&#160; TkGroupImpl* <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#ab396e794061650eccbaa634ababc3816">m_group</a>; </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a9dc101fae5893caffb7648363f9c3c87"> 359</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html">LocalBuffer&lt;NvBlastChunkFractureData&gt;</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a9dc101fae5893caffb7648363f9c3c87">m_chunkBuffer</a>; </div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a06ada63884aa02d48fe7242d87b8f720"> 360</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html">LocalBuffer&lt;NvBlastBondFractureData&gt;</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a06ada63884aa02d48fe7242d87b8f720">m_bondBuffer</a>; </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a1601085db1b8bb0056b33861f6c1dfe9"> 362</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a1601085db1b8bb0056b33861f6c1dfe9">m_splitScratch</a>;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#afad94d7bcfd700ee3bca618feacf7b84"> 363</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#afad94d7bcfd700ee3bca618feacf7b84">m_tempBuffer</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a83ac36c0f66681450021cfeadffb3597"> 364</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a83ac36c0f66681450021cfeadffb3597">m_isBusy</a>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#if NV_PROFILE</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a> m_stats;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;};</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;}</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#endif // NVBLASTTKTASKIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_shared_memory_html_ae8651b026da2fc7ce41f4f9711d5f4dd"><div class="ttname"><a href="class_nv_1_1_blast_1_1_shared_memory.html#ae8651b026da2fc7ce41f4f9711d5f4dd">Nv::Blast::SharedMemory::m_eventsMemory</a></div><div class="ttdeci">uint32_t m_eventsMemory</div><div class="ttdoc">expected memory size for event data </div><div class="ttdef"><b>Definition:</b> NvBlastTkTaskImpl.h:331</div></div>
+<a href="_nv_blast_tk_task_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTASKIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTASKIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_8h.html">NvBlast.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_framework_impl_8h.html">NvBlastTkFrameworkImpl.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_event_queue_8h.html">NvBlastTkEventQueue.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_array_8h.html">NvBlastArray.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;condition_variable&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_assert_8h.html">NvBlastAssert.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_group_8h.html">NvBlastTkGroup.h</a>&quot;</span> <span class="comment">// TkGroupStats</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span>TkGroupImpl;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span>TkActorImpl;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span>TkFamilyImpl;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html"> 60</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html">TkWorkerJob</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#a52754f8fd3ce679380fb13a3549fd8d1"> 62</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>* <a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#a52754f8fd3ce679380fb13a3549fd8d1">m_tkActor</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#afbf6999089abcfac1871f151217f1f91"> 63</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor_impl.html">TkActorImpl</a>** <a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#afbf6999089abcfac1871f151217f1f91">m_newActors</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#ae3881de93a5f5224791f6f87f94f3f96"> 64</a></span>&#160; uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html#ae3881de93a5f5224791f6f87f94f3f96">m_newActorsCount</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html"> 75</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_shared_block.html">SharedBlock</a></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#af891a9a802158ef8119000edd6ab7e61"> 79</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#af891a9a802158ef8119000edd6ab7e61">SharedBlock</a>() : m_numElementsPerBlock(0), m_numBlocks(0), m_buffer(nullptr) {}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#af83d17680afb4c8b03eb3fa81f79255d"> 84</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#af83d17680afb4c8b03eb3fa81f79255d">allocate</a>(uint32_t elementsPerBlock, uint32_t numBlocks)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(elementsPerBlock &gt; 0 &amp;&amp; numBlocks &gt; 0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_buffer = <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(<a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(elementsPerBlock*numBlocks*<span class="keyword">sizeof</span>(T), <span class="stringliteral">&quot;SharedBlock&quot;</span>));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_numElementsPerBlock = elementsPerBlock;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_numBlocks = numBlocks;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#ac4a8aaca694b9a5a4c9264c471b76fd9"> 96</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#ac4a8aaca694b9a5a4c9264c471b76fd9">getBlock</a>(uint32_t <span class="keywordtype">id</span>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(<span class="keywordtype">id</span> &lt; m_numBlocks || 0 == m_numElementsPerBlock);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> &amp;m_buffer[<span class="keywordtype">id</span>*m_numElementsPerBlock];</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#a482be96159ba7e7b58f7ae734284eea5"> 105</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#a482be96159ba7e7b58f7ae734284eea5">numElementsPerBlock</a>()<span class="keyword"> const </span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> m_numElementsPerBlock; </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_block.html#acbd14a848ce470167c84416571c9689b"> 113</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_block.html#acbd14a848ce470167c84416571c9689b">release</a>()</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_numBlocks = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_numElementsPerBlock = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(m_buffer);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_buffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; uint32_t m_numElementsPerBlock; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uint32_t m_numBlocks; </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; T* m_buffer; </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;};</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html"> 135</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html">SharedBuffer</a></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a195ce955812bc778caf44c6211f004ca"> 138</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a195ce955812bc778caf44c6211f004ca">SharedBuffer</a>() : m_capacity(0), m_used(0), m_buffer(nullptr) {}</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a88ffb1cd3b27fdce82b96073efe261c3"> 143</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a88ffb1cd3b27fdce82b96073efe261c3">reserve</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_used + n &lt;= m_capacity);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">size_t</span> start = m_used.fetch_add(n);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> &amp;m_buffer[start];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7ee955ac7695f8167d74aa060bfe6492"> 153</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7ee955ac7695f8167d74aa060bfe6492">allocate</a>(<span class="keywordtype">size_t</span> capacity)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_buffer == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_buffer = <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(<a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(capacity*<span class="keyword">sizeof</span>(T), <span class="stringliteral">&quot;SplitMemory&quot;</span>));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_capacity = capacity;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a712ca47f2a2fc95f769951994ca66ecc"> 163</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a712ca47f2a2fc95f769951994ca66ecc">reset</a>()</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_used = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7be2a8e72803a3ea16afefb7d8b0bde5"> 171</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html#a7be2a8e72803a3ea16afefb7d8b0bde5">release</a>()</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="_nv_blast_assert_8h.html#a2b179fca67cdb57b12b65e33fe3f6c93">NVBLAST_ASSERT</a>(m_buffer != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(m_buffer);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_buffer = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_capacity = m_used = 0;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">size_t</span> m_capacity; </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::atomic&lt;size_t&gt; m_used; </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; T* m_buffer; </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html"> 191</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html">LocalBuffer</a></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html#adcd31b00a02dfa4df22a5191ec1bc208"> 198</a></span>&#160; T* <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html#adcd31b00a02dfa4df22a5191ec1bc208">allocate</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (m_used + n &gt; m_capacity)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; allocateNewBlock(n &gt; m_capacity ? n : m_capacity);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">size_t</span> index = m_used;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_used += n;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> &amp;m_currentBlock[index];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html#a75ddcb70c161b0744d9ec8e1b5a91ff4"> 214</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html#a75ddcb70c161b0744d9ec8e1b5a91ff4">clear</a>()</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">void</span>* block : m_memoryBlocks)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="_nv_blast_globals_8h.html#af968d9c2dc2aaeb87f55bbd85488f741">NVBLAST_FREE</a>(block);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_memoryBlocks.clear();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_local_buffer.html#a5e9d8e27765fd724569ce06d4b1cc617"> 227</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html#a5e9d8e27765fd724569ce06d4b1cc617">initialize</a>(T* block, <span class="keywordtype">size_t</span> capacity)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; m_currentBlock = block;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_capacity = capacity;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_used = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">void</span> allocateNewBlock(<span class="keywordtype">size_t</span> capacity)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="_nv_blast_profiler_internal_8h.html#aaba578d5cd160859cd514c33ac6171a5">BLAST_PROFILE_SCOPE_L</a>(<span class="stringliteral">&quot;Local Buffer allocation&quot;</span>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_capacity = capacity;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_currentBlock = <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(<a class="code" href="_nv_blast_globals_8h.html#a8b44c099b2f3dd78e4887065cbd3844d">NVBLAST_ALLOC_NAMED</a>(capacity*<span class="keyword">sizeof</span>(T), <span class="stringliteral">&quot;Blast LocalBuffer&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_memoryBlocks.pushBack(m_currentBlock);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_used = 0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_inline_array.html">InlineArray&lt;void*, 4&gt;::type</a> m_memoryBlocks; </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; T* m_currentBlock; </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">size_t</span> m_used; </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">size_t</span> m_capacity; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;};</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html"> 257</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html">SharedMemory</a></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a399aac38cf540e274ba36ca20358d182"> 260</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a399aac38cf540e274ba36ca20358d182">SharedMemory</a>() : m_eventsMemory(0), m_eventsCount(0), m_refCount(0) {}</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a325448e388c46c916953cfe95b51f567"> 265</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a325448e388c46c916953cfe95b51f567">reserveNewActors</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> m_newActorBuffers.reserve(n);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a6cdea8e6eeb26aa1fff1ba5ef8d48c98"> 273</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_actor.html">TkActor</a>** <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a6cdea8e6eeb26aa1fff1ba5ef8d48c98">reserveNewTkActors</a>(<span class="keywordtype">size_t</span> n)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> m_newTkActorBuffers.reserve(n);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordtype">void</span> allocate(TkFamilyImpl&amp;);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a69e13453e62cdaf8b2e8c5b9743f9b56"> 287</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a69e13453e62cdaf8b2e8c5b9743f9b56">reset</a>()</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; m_newActorBuffers.reset();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_newTkActorBuffers.reset();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a75c598b9405193ab7c8ad2553aacae39"> 296</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a75c598b9405193ab7c8ad2553aacae39">addReference</a>() { m_refCount++; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a18714f82b39e9a17c94541c31dc1b0bd"> 301</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a18714f82b39e9a17c94541c31dc1b0bd">addReference</a>(<span class="keywordtype">size_t</span> n) { m_refCount += n; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a795a2be3de022efc1bac6559db0baafe"> 307</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a795a2be3de022efc1bac6559db0baafe">removeReference</a>()</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_refCount--;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> !isUsed();</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a18a846a728fd84375fdc87198e2cdda0"> 316</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a18a846a728fd84375fdc87198e2cdda0">isUsed</a>()</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> m_refCount &gt; 0;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a769339a919c9709708ea28b7dcac1e64"> 324</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a769339a919c9709708ea28b7dcac1e64">release</a>()</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; m_newActorBuffers.release();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_newTkActorBuffers.release();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#aa0cbd70359cd6c1e09e6acaa103bdecf"> 330</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_event_queue.html">TkEventQueue</a> <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#aa0cbd70359cd6c1e09e6acaa103bdecf">m_events</a>; </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#ae8651b026da2fc7ce41f4f9711d5f4dd"> 331</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#ae8651b026da2fc7ce41f4f9711d5f4dd">m_eventsMemory</a>; </div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_shared_memory.html#a3fcf06b114621282a264aa4b8bef66a9"> 332</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_shared_memory.html#a3fcf06b114621282a264aa4b8bef66a9">m_eventsCount</a>; </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordtype">size_t</span> m_refCount; </div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html">SharedBuffer&lt;NvBlastActor*&gt;</a> m_newActorBuffers; </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_shared_buffer.html">SharedBuffer&lt;TkActor*&gt;</a> m_newTkActorBuffers; </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;};</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html"> 346</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html">TkWorker</a> final : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_group_worker.html">TkGroupWorker</a></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a8a6e2befae56e76d58c5b8158b6baa4c"> 349</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a8a6e2befae56e76d58c5b8158b6baa4c">TkWorker</a>() : m_id(~(uint32_t)0), m_group(nullptr), m_isBusy(false) {}</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">void</span> process(uint32_t jobID);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">void</span> initialize();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">void</span> process(<a class="code" href="struct_nv_1_1_blast_1_1_tk_worker_job.html">TkWorkerJob</a>&amp; job);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a545667052e4dd46e956baa23cb0f8855"> 356</a></span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a545667052e4dd46e956baa23cb0f8855">m_id</a>; </div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#ab396e794061650eccbaa634ababc3816"> 357</a></span>&#160; TkGroupImpl* <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#ab396e794061650eccbaa634ababc3816">m_group</a>; </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a9dc101fae5893caffb7648363f9c3c87"> 359</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html">LocalBuffer&lt;NvBlastChunkFractureData&gt;</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a9dc101fae5893caffb7648363f9c3c87">m_chunkBuffer</a>; </div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a06ada63884aa02d48fe7242d87b8f720"> 360</a></span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_local_buffer.html">LocalBuffer&lt;NvBlastBondFractureData&gt;</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a06ada63884aa02d48fe7242d87b8f720">m_bondBuffer</a>; </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a1601085db1b8bb0056b33861f6c1dfe9"> 362</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a1601085db1b8bb0056b33861f6c1dfe9">m_splitScratch</a>;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#afad94d7bcfd700ee3bca618feacf7b84"> 363</a></span>&#160; <a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#afad94d7bcfd700ee3bca618feacf7b84">m_tempBuffer</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_worker.html#a83ac36c0f66681450021cfeadffb3597"> 364</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_worker.html#a83ac36c0f66681450021cfeadffb3597">m_isBusy</a>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#if NV_PROFILE</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="struct_nv_1_1_blast_1_1_tk_group_stats.html">TkGroupStats</a> m_stats;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;};</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;}</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#endif // NVBLASTTKTASKIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_shared_memory_html_ae8651b026da2fc7ce41f4f9711d5f4dd"><div class="ttname"><a href="class_nv_1_1_blast_1_1_shared_memory.html#ae8651b026da2fc7ce41f4f9711d5f4dd">Nv::Blast::SharedMemory::m_eventsMemory</a></div><div class="ttdeci">uint32_t m_eventsMemory</div><div class="ttdoc">expected memory size for event data </div><div class="ttdef"><b>Definition:</b> NvBlastTkTaskImpl.h:331</div></div>
<div class="ttc" id="_nv_blast_array_8h_html"><div class="ttname"><a href="_nv_blast_array_8h.html">NvBlastArray.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_shared_block_html_af891a9a802158ef8119000edd6ab7e61"><div class="ttname"><a href="class_nv_1_1_blast_1_1_shared_block.html#af891a9a802158ef8119000edd6ab7e61">Nv::Blast::SharedBlock::SharedBlock</a></div><div class="ttdeci">SharedBlock()</div><div class="ttdef"><b>Definition:</b> NvBlastTkTaskImpl.h:79</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_shared_memory_html_a399aac38cf540e274ba36ca20358d182"><div class="ttname"><a href="class_nv_1_1_blast_1_1_shared_memory.html#a399aac38cf540e274ba36ca20358d182">Nv::Blast::SharedMemory::SharedMemory</a></div><div class="ttdeci">SharedMemory()</div><div class="ttdef"><b>Definition:</b> NvBlastTkTaskImpl.h:260</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_type_8h_source.html b/docs/source_docs/files/_nv_blast_tk_type_8h_source.html
index a4d334d..49f9d0f 100755
--- a/docs/source_docs/files/_nv_blast_tk_type_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_type_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_type_8h_source.html','');
<div class="title">NvBlastTkType.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_type_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#af3d9ae44f5f8234e0ccf6027dcca40ab">getName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#ada004286c609b55824a712b518ddb23c">getVersion</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6"> 73</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">operator == </a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> &amp;type == <span class="keyword">this</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKTYPE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_aec7c0da2124e245c4e0ef01c3b7b54c6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">Nv::Blast::TkType::operator==</a></div><div class="ttdeci">bool operator==(const TkType &amp;type) const</div><div class="ttdef"><b>Definition:</b> NvBlastTkType.h:73</div></div>
+<a href="_nv_blast_tk_type_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTYPE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_types_8h.html">NvBlastTypes.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#af3d9ae44f5f8234e0ccf6027dcca40ab">getName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#ada004286c609b55824a712b518ddb23c">getVersion</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6"> 73</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">operator == </a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a>&amp; type)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> &amp;type == <span class="keyword">this</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKTYPE_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_aec7c0da2124e245c4e0ef01c3b7b54c6"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#aec7c0da2124e245c4e0ef01c3b7b54c6">Nv::Blast::TkType::operator==</a></div><div class="ttdeci">bool operator==(const TkType &amp;type) const</div><div class="ttdef"><b>Definition:</b> NvBlastTkType.h:73</div></div>
<div class="ttc" id="_nv_blast_types_8h_html"><div class="ttname"><a href="_nv_blast_types_8h.html">NvBlastTypes.h</a></div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_af3d9ae44f5f8234e0ccf6027dcca40ab"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#af3d9ae44f5f8234e0ccf6027dcca40ab">Nv::Blast::TkType::getName</a></div><div class="ttdeci">virtual const char * getName() const =0</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_html_ada004286c609b55824a712b518ddb23c"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type.html#ada004286c609b55824a712b518ddb23c">Nv::Blast::TkType::getVersion</a></div><div class="ttdeci">virtual uint32_t getVersion() const =0</div></div>
diff --git a/docs/source_docs/files/_nv_blast_tk_type_impl_8h_source.html b/docs/source_docs/files/_nv_blast_tk_type_impl_8h_source.html
index 8e7ecd9..9150170 100755
--- a/docs/source_docs/files/_nv_blast_tk_type_impl_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_tk_type_impl_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_tk_type_impl_8h_source.html'
<div class="title">NvBlastTkTypeImpl.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_tk_type_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTYPEIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTYPEIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html">TkTypeImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#abc43497e32ff0e170feb4f741698afe2">TkTypeImpl</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, uint32_t typeID, uint32_t version);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Begin TkType</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ab9a0b0be8e7d8dd6fdeee0ab8814c862"> 52</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ab9a0b0be8e7d8dd6fdeee0ab8814c862">getName</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8">getNameInternal</a>(); }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ac0c4bf38045cd86be2da13d06b3ea12e"> 54</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ac0c4bf38045cd86be2da13d06b3ea12e">getVersion</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242">getVersionInternal</a>(); }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// End TkType</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8">getNameInternal</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242">getVersionInternal</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50">getID</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a82b4d282dcea4e81c118f9d4e703c21f">getIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38">indexIsValid</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">enum</span> { InvalidIndex = 0xFFFFFFFF };</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> setIndex(uint32_t index);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_name; </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t m_ID; </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint32_t m_version; </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; uint32_t m_index; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ab3dc3d8e38a1518e1215c39f55db6851"> 107</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#abc43497e32ff0e170feb4f741698afe2"> 113</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#abc43497e32ff0e170feb4f741698afe2">TkTypeImpl::TkTypeImpl</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, uint32_t typeID, uint32_t version)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; : m_name(typeName)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; , m_ID(typeID)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; , m_version(version)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; , m_index((uint32_t)InvalidIndex)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8"> 122</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8">TkTypeImpl::getNameInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> m_name;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242"> 128</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242">TkTypeImpl::getVersionInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> m_version;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50"> 134</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50">TkTypeImpl::getID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> m_ID;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a82b4d282dcea4e81c118f9d4e703c21f"> 140</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a82b4d282dcea4e81c118f9d4e703c21f">TkTypeImpl::getIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> m_index;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38"> 146</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38">TkTypeImpl::indexIsValid</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> m_index != (uint32_t)InvalidIndex;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkTypeImpl::setIndex(uint32_t index)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_index = index;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKTYPEIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_impl_html_a8eab4a59a88ce8e8bb2d5f8eada63e38"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38">Nv::Blast::TkTypeImpl::indexIsValid</a></div><div class="ttdeci">bool indexIsValid() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkTypeImpl.h:146</div></div>
+<a href="_nv_blast_tk_type_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTKTYPEIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTKTYPEIMPL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html">TkTypeImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type.html">TkType</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#abc43497e32ff0e170feb4f741698afe2">TkTypeImpl</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, uint32_t typeID, uint32_t version);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Begin TkType</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ab9a0b0be8e7d8dd6fdeee0ab8814c862"> 52</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ab9a0b0be8e7d8dd6fdeee0ab8814c862">getName</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8">getNameInternal</a>(); }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ac0c4bf38045cd86be2da13d06b3ea12e"> 54</a></span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ac0c4bf38045cd86be2da13d06b3ea12e">getVersion</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242">getVersionInternal</a>(); }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// End TkType</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Public methods</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8">getNameInternal</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242">getVersionInternal</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50">getID</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a82b4d282dcea4e81c118f9d4e703c21f">getIndex</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38">indexIsValid</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">enum</span> { InvalidIndex = 0xFFFFFFFF };</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> setIndex(uint32_t index);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* m_name; </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint32_t m_ID; </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint32_t m_version; </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; uint32_t m_index; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ab3dc3d8e38a1518e1215c39f55db6851"> 107</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_tk_framework_impl.html">TkFrameworkImpl</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#abc43497e32ff0e170feb4f741698afe2"> 113</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#abc43497e32ff0e170feb4f741698afe2">TkTypeImpl::TkTypeImpl</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* typeName, uint32_t typeID, uint32_t version)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; : m_name(typeName)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; , m_ID(typeID)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; , m_version(version)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; , m_index((uint32_t)InvalidIndex)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8"> 122</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a3472f2e6de6a3c28996a2fcf9c20e8c8">TkTypeImpl::getNameInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> m_name;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242"> 128</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a1383a593c22597b96709a5cfd1589242">TkTypeImpl::getVersionInternal</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> m_version;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50"> 134</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50">TkTypeImpl::getID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> m_ID;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a82b4d282dcea4e81c118f9d4e703c21f"> 140</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> uint32_t <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a82b4d282dcea4e81c118f9d4e703c21f">TkTypeImpl::getIndex</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> m_index;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38"> 146</a></span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38">TkTypeImpl::indexIsValid</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> m_index != (uint32_t)InvalidIndex;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> TkTypeImpl::setIndex(uint32_t index)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_index = index;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;} <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;} <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTKTYPEIMPL_H</span></div><div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_impl_html_a8eab4a59a88ce8e8bb2d5f8eada63e38"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type_impl.html#a8eab4a59a88ce8e8bb2d5f8eada63e38">Nv::Blast::TkTypeImpl::indexIsValid</a></div><div class="ttdeci">bool indexIsValid() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkTypeImpl.h:146</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_impl_html_ae4ce956404b45815e0da12c6bcb31f50"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type_impl.html#ae4ce956404b45815e0da12c6bcb31f50">Nv::Blast::TkTypeImpl::getID</a></div><div class="ttdeci">uint32_t getID() const</div><div class="ttdef"><b>Definition:</b> NvBlastTkTypeImpl.h:134</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_type_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_type_impl.html">Nv::Blast::TkTypeImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkTypeImpl.h:46</div></div>
<div class="ttc" id="_nv_blast_tk_type_8h_html"><div class="ttname"><a href="_nv_blast_tk_type_8h.html">NvBlastTkType.h</a></div></div>
diff --git a/docs/source_docs/files/_nv_blast_types_8h_source.html b/docs/source_docs/files/_nv_blast_types_8h_source.html
index 0d3f810..7db7073 100755
--- a/docs/source_docs/files/_nv_blast_types_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_types_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_types_8h_source.html','');})
<div class="title">NvBlastTypes.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_blast_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// NvBlast common types</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_message.html">NvBlastMessage</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce"> 47</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce">Type</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"> 49</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">Error</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07"> 50</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">Warning</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f"> 51</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">Info</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">Debug</a> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab"> 63</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a>)(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html"> 69</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8"> 71</a></span>&#160; <span class="keywordtype">char</span> data[16];</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef"> 87</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d"> 88</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00"> 89</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00">island</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307"> 90</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf"> 91</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648"> 103</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648">Type</a></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463"> 105</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463">AssetDataBlock</a>,</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb"> 106</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb">FamilyDataBlock</a>,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a4463e88093733032ed9751bcb753ec50"> 108</a></span>&#160; Count</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e"> 115</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e">dataType</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5"> 121</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5">formatVersion</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d"> 128</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d">size</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723"> 133</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723">reserved</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// NvBlastAsset related types</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html"> 152</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a3c8c4522d0fdde5d38f59509aa2333d2"> 157</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a"> 162</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a">volume</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f"> 167</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d"> 172</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719"> 177</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5"> 182</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5">userData</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html"> 189</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d"> 194</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>[3];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba"> 199</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba">area</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6"> 204</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7"> 209</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">userData</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;};</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html"> 244</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f"> 249</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f">nodeCount</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307"> 254</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307">chunkIndices</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57"> 263</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57">adjacencyPartition</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931"> 268</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931">adjacentNodeIndices</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a"> 273</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a">adjacentBondIndices</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;};</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset.html"> 286</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a> {};</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html"> 292</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b"> 294</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b">Flags</a></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba09ac7c50cd7a350095ee9680bb66547a"> 296</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba912c6007e1f18bab5eca228701183b3c"> 299</a></span>&#160; SupportFlag = (1 &lt;&lt; 0)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; };</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a7b187457f49dae02e48405b073e3c50b"> 303</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c"> 306</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c">volume</a>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9"> 309</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9">parentChunkIndex</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81"> 312</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81">flags</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e"> 315</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e">userData</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;};</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html"> 322</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21"> 325</a></span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a> <a class="code" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21">bond</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#a84e9141449f357a74e3e77b3464fb629"> 333</a></span>&#160; uint32_t chunkIndices[2];</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;};</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html"> 345</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88"> 348</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88">chunkCount</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7"> 351</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7">chunkDescs</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc">bondCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f"> 357</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f">bondDescs</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// NvBlastActor related types</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="struct_nv_blast_family.html"> 376</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a> {};</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor.html"> 387</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a> {};</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html"> 395</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1"> 400</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1">uniformInitialBondHealth</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d"> 406</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d">initialBondHealths</a>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b"> 411</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b">uniformInitialLowerSupportChunkHealth</a>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3"> 421</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3">initialSupportChunkHealths</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// Types used for damage and fracturing</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html"> 439</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5"> 441</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5">userdata</a>; </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee"> 442</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee">chunkIndex</a>; </div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f"> 443</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f">health</a>; </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;};</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html"> 453</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91"> 455</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91">userdata</a>; </div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489"> 456</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489">nodeIndex0</a>; </div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949"> 457</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949">nodeIndex1</a>; </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2"> 458</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2">health</a>; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;};</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html"> 468</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356"> 470</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356">bondFractureCount</a>; </div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307"> 471</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307">chunkFractureCount</a>; </div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837"> 472</a></span>&#160; <a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837">bondFractures</a>; </div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc"> 473</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc">chunkFractures</a>; </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;};</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html"> 481</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;{</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a"> 483</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a">deletedActor</a>; </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7"> 484</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** <a class="code" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7">newActors</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;};</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html"> 491</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b"> 493</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b">actorIndex</a>; </div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7"> 494</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7">graphNodeCount</a>; </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9"> 495</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9">assetNodeCount</a>; </div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e"> 496</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e">firstGraphNodeIndex</a>; </div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51"> 497</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51">graphNodeIndexLinks</a>; </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa"> 498</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa">chunkIndices</a>; </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9"> 499</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9">adjacencyPartition</a>; </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf"> 500</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf">adjacentNodeIndices</a>; </div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3"> 501</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3">adjacentBondIndices</a>; </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe"> 502</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe">assetBonds</a>; </div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40"> 503</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40">assetChunks</a>; </div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390"> 504</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390">familyBondHealths</a>; </div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26"> 505</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26">supportChunkHealths</a>; </div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec"> 506</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec">nodeActorIndices</a>; </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;};</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html"> 513</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431"> 515</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431">chunkIndex</a>; </div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703"> 516</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703">assetChunks</a>; </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;};</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a"> 545</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918"> 573</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html"> 584</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;{</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e"> 586</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e">graphShaderFunction</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc"> 587</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc">subgraphShaderFunction</a>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;};</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTYPES_H</span></div><div class="ttc" id="struct_nv_blast_bond_html_a4e131a735184d74e611b9b40a368edd7"><div class="ttname"><a href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">NvBlastBond::userData</a></div><div class="ttdeci">uint32_t userData</div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:209</div></div>
+<a href="_nv_blast_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef NVBLASTTYPES_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define NVBLASTTYPES_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_preprocessor_8h.html">NvBlastPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// NvBlast common types</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html"> 45</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_message.html">NvBlastMessage</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce"> 47</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce">Type</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"> 49</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">Error</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07"> 50</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ceaa76dd048e00e7842f991f69fbd9adb07">Warning</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f"> 51</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea7672dda7296bbcac2e2bad5546d82c6f">Info</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a"> 52</a></span>&#160; <a class="code" href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a">Debug</a> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab"> 63</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#aca9b64ae20263de0d18e0f58cb51b1ab">NvBlastLog</a>)(<span class="keywordtype">int</span> type, <span class="keyword">const</span> <span class="keywordtype">char</span>* msg, <span class="keyword">const</span> <span class="keywordtype">char</span>* file, <span class="keywordtype">int</span> line);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html"> 69</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_i_d.html">NvBlastID</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8"> 71</a></span>&#160; <span class="keywordtype">char</span> data[16];</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_timers.html">NvBlastTimers</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef"> 87</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ac416f56479c812f9b35a655326cb57ef">material</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d"> 88</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a3d28ae3da5c758181deb2bbad75fab3d">fracture</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00"> 89</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae7012b950ebcdb3a83b82d89fe317b00">island</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307"> 90</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#a809518829d8ae9364ddfc2e78fa76307">partition</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf"> 91</a></span>&#160; int64_t <a class="code" href="struct_nv_blast_timers.html#ae83ccbba27f60d1885d25328e5fd34cf">visibility</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html"> 98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_data_block.html">NvBlastDataBlock</a></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648"> 103</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648">Type</a></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463"> 105</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a0db40958d7f33c4644e4b52cb2213463">AssetDataBlock</a>,</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb"> 106</a></span>&#160; <a class="code" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a93a84c010ad777a45f66ee67283c6bbb">FamilyDataBlock</a>,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a78797137dcdd9524f082fc784f7b9648a4463e88093733032ed9751bcb753ec50"> 108</a></span>&#160; Count</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e"> 115</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#aeacfc95c07793d4eebe4ba3eadc1b74e">dataType</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5"> 121</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#ae199abf554ae2cdfd8795066ddd285d5">formatVersion</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d"> 128</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#a8e67affa199c543e727b3b15cbace86d">size</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723"> 133</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_data_block.html#acd8915d1f4a01e14514bf52ef0df3723">reserved</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// NvBlastAsset related types</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html"> 152</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a3c8c4522d0fdde5d38f59509aa2333d2"> 157</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a"> 162</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk.html#a8ba6098c271d2b347598c64b4e60b64a">volume</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f"> 167</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#af98dff11de0de7118f98489b76d0104f">parentChunkIndex</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d"> 172</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a788bc10dd2959c77871a64dcce87387d">firstChildIndex</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719"> 177</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#ad5a53684d0123f6536598896f672b719">childIndexStop</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5"> 182</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk.html#a9d49d856390e7758d4ea26ae69ae6aa5">userData</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html"> 189</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a3e8b8dd2ac2634098df7c1475ee6171d"> 194</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>[3];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba"> 199</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond.html#a5dc5d104d61919d19968ce77b7db9bba">area</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a0b9fdf36eb1288c8d26d2549b68df5c6"> 204</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7"> 209</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">userData</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;};</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html"> 244</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f"> 249</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_support_graph.html#aac2f6bdd02cc6ed2b30af8f3099d072f">nodeCount</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307"> 254</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#a6d9d5cbbbc94137fdec50d7b7a20e307">chunkIndices</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57"> 263</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa1f5c4dc460ae44650e955b3ef1f7d57">adjacencyPartition</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931"> 268</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#aa7c1f66e9cd717b941272e739aed2931">adjacentNodeIndices</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a"> 273</a></span>&#160; uint32_t* <a class="code" href="struct_nv_blast_support_graph.html#ae659d7f25dd6ae780f8cf14d7bf3925a">adjacentBondIndices</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;};</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset.html"> 286</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset.html">NvBlastAsset</a> {};</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html"> 292</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b"> 294</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1b">Flags</a></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba09ac7c50cd7a350095ee9680bb66547a"> 296</a></span>&#160; NoFlags = 0,</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#ac5f6208f745fd4269c4a9b098297bf1ba912c6007e1f18bab5eca228701183b3c"> 299</a></span>&#160; SupportFlag = (1 &lt;&lt; 0)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; };</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a7b187457f49dae02e48405b073e3c50b"> 303</a></span>&#160; <span class="keywordtype">float</span> centroid[3];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c"> 306</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_desc.html#a18a7f5e3f32d67d1ca645ce268d7ca0c">volume</a>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9"> 309</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a4f683857da450660edaf189b93a626d9">parentChunkIndex</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81"> 312</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a2e6f6db9787b70f65e23c68826149a81">flags</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e"> 315</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_desc.html#a61728e37d062c4cc9a0e8fe40584959e">userData</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;};</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html"> 322</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21"> 325</a></span>&#160; <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a> <a class="code" href="struct_nv_blast_bond_desc.html#abd236b0aab459eac98b48a6f33a6fa21">bond</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_desc.html#a84e9141449f357a74e3e77b3464fb629"> 333</a></span>&#160; uint32_t chunkIndices[2];</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;};</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html"> 345</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_asset_desc.html">NvBlastAssetDesc</a></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88"> 348</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a1114233ec7143f7bf17081de0958de88">chunkCount</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7"> 351</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk_desc.html">NvBlastChunkDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#a262022943f835bbbf7c937b485f47cd7">chunkDescs</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc"> 354</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_asset_desc.html#a99fc905bd927696652cfab4c562f1bdc">bondCount</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f"> 357</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond_desc.html">NvBlastBondDesc</a>* <a class="code" href="struct_nv_blast_asset_desc.html#af9ee95aba486c075fe87d8a117727d4f">bondDescs</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// NvBlastActor related types</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="struct_nv_blast_family.html"> 376</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_family.html">NvBlastFamily</a> {};</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor.html"> 387</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a> {};</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html"> 395</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1"> 400</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ab9ce8fff059a17cfffd7e5965fa59ea1">uniformInitialBondHealth</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d"> 406</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d">initialBondHealths</a>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b"> 411</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_actor_desc.html#ad2a4f6be8fd6d1a3a819ad76a0cdba2b">uniformInitialLowerSupportChunkHealth</a>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3"> 421</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_actor_desc.html#a606df7d2c5a1d45e562fbdb8a8b79fa3">initialSupportChunkHealths</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// Types used for damage and fracturing</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html"> 439</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5"> 441</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#a6623c6f7d40381a862e058a868ec22a5">userdata</a>; </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee"> 442</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_chunk_fracture_data.html#ad6a4e5b1e70f7f6fb10030903e5fc3ee">chunkIndex</a>; </div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f"> 443</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_chunk_fracture_data.html#aaafb402befd0b9c0fa38d2b0f21cd51f">health</a>; </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;};</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html"> 453</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91"> 455</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a33fec8bda99647afa0a1fa7e03383f91">userdata</a>; </div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489"> 456</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#a7ec6076d714fe6a52a8aad5c421ea489">nodeIndex0</a>; </div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949"> 457</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_bond_fracture_data.html#ab657840c4ea298d08b8083f0e857c949">nodeIndex1</a>; </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2"> 458</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nv_blast_bond_fracture_data.html#af583d46c49f4b1b25231da290ed01bb2">health</a>; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;};</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html"> 468</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356"> 470</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a6e0a226d98a23de576d376c4bf9fc356">bondFractureCount</a>; </div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307"> 471</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_fracture_buffers.html#a28b22a3eaf7e9ff7506686073b067307">chunkFractureCount</a>; </div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837"> 472</a></span>&#160; <a class="code" href="struct_nv_blast_bond_fracture_data.html">NvBlastBondFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#a5768e2ed80216a98fbcaee56a6194837">bondFractures</a>; </div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc"> 473</a></span>&#160; <a class="code" href="struct_nv_blast_chunk_fracture_data.html">NvBlastChunkFractureData</a>* <a class="code" href="struct_nv_blast_fracture_buffers.html#abcca669987def0e1427d8f9ec1ab8afc">chunkFractures</a>; </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;};</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html"> 481</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_actor_split_event.html">NvBlastActorSplitEvent</a></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;{</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a"> 483</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>* <a class="code" href="struct_nv_blast_actor_split_event.html#a80b5ff70f6f204ffbcbd8c0e2849899a">deletedActor</a>; </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7"> 484</a></span>&#160; <a class="code" href="struct_nv_blast_actor.html">NvBlastActor</a>** <a class="code" href="struct_nv_blast_actor_split_event.html#a68a98a5294eeab3684151324d6aa87a7">newActors</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;};</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html"> 491</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b"> 493</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2692d368ec1c3a96345643b744920a4b">actorIndex</a>; </div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7"> 494</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#a67e59c295b84a97dc493e2ac824fb0d7">graphNodeCount</a>; </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9"> 495</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9">assetNodeCount</a>; </div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e"> 496</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_graph_shader_actor.html#ac504dff11ba8d936e7dc508ce1e4d71e">firstGraphNodeIndex</a>; </div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51"> 497</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ab33f3af55cf81d8cb0b3cce0504c2e51">graphNodeIndexLinks</a>; </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa"> 498</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a7d93e1fd93ea0d30f9e7c580fabd89fa">chunkIndices</a>; </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9"> 499</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a6e4ce5f47dabfa8657173e085f1708c9">adjacencyPartition</a>; </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf"> 500</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a80b1bd8d6d2a405ddb24959ca7c066bf">adjacentNodeIndices</a>; </div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3"> 501</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a71d549a44c8aa5a13f9d3e36f7ff27a3">adjacentBondIndices</a>; </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe"> 502</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_bond.html">NvBlastBond</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe">assetBonds</a>; </div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40"> 503</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a57bf267baa9b5397af645203592a0a40">assetChunks</a>; </div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390"> 504</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a0d24558f3c19292188acb08665500390">familyBondHealths</a>; </div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26"> 505</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="struct_nv_blast_graph_shader_actor.html#a2dcbf1a8af0917a3989d356e1691ab26">supportChunkHealths</a>; </div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec"> 506</a></span>&#160; <span class="keyword">const</span> uint32_t* <a class="code" href="struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec">nodeActorIndices</a>; </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;};</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html"> 513</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431"> 515</a></span>&#160; uint32_t <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a33350ae02e48d5b93b20bf40f3992431">chunkIndex</a>; </div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703"> 516</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_nv_blast_chunk.html">NvBlastChunk</a>* <a class="code" href="struct_nv_blast_subgraph_shader_actor.html#a6a9b6ce5e41217116491b9b027425703">assetChunks</a>; </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;};</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a"> 545</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_graph_shader_actor.html">NvBlastGraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918"> 573</a></span>&#160;<span class="keyword">typedef</span> void(*<a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a>)(<a class="code" href="struct_nv_blast_fracture_buffers.html">NvBlastFractureBuffers</a>* commandBuffers, <span class="keyword">const</span> <a class="code" href="struct_nv_blast_subgraph_shader_actor.html">NvBlastSubgraphShaderActor</a>* actor, <span class="keyword">const</span> <span class="keywordtype">void</span>* programParams);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html"> 584</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_blast_damage_program.html">NvBlastDamageProgram</a></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;{</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e"> 586</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a82519adf79b20af687b7c8734b19e87a">NvBlastGraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#acbd3cd5f64dd5e3880cd4eb2e044ff8e">graphShaderFunction</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc"> 587</a></span>&#160; <a class="code" href="_nv_blast_types_8h.html#a84db34681482d19f9e58ce89adc7a918">NvBlastSubgraphShaderFunction</a> <a class="code" href="struct_nv_blast_damage_program.html#adafc94c7f45e08017491cdf1657e84dc">subgraphShaderFunction</a>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;};</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#endif // ifndef NVBLASTTYPES_H</span></div><div class="ttc" id="struct_nv_blast_bond_html_a4e131a735184d74e611b9b40a368edd7"><div class="ttname"><a href="struct_nv_blast_bond.html#a4e131a735184d74e611b9b40a368edd7">NvBlastBond::userData</a></div><div class="ttdeci">uint32_t userData</div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:209</div></div>
<div class="ttc" id="struct_nv_blast_message_html_aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1"><div class="ttname"><a href="struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cead3859c9af6bbbf222b8e9bca6eb664a1">NvBlastMessage::Error</a></div><div class="ttdoc">Error messages. </div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:49</div></div>
<div class="ttc" id="struct_nv_blast_support_graph_html"><div class="ttname"><a href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:244</div></div>
<div class="ttc" id="struct_nv_blast_actor_desc_html"><div class="ttname"><a href="struct_nv_blast_actor_desc.html">NvBlastActorDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastTypes.h:395</div></div>
diff --git a/docs/source_docs/files/_nv_c_types_8h_source.html b/docs/source_docs/files/_nv_c_types_8h_source.html
index 4d46213..ec248a6 100755
--- a/docs/source_docs/files/_nv_c_types_8h_source.html
+++ b/docs/source_docs/files/_nv_c_types_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_c_types_8h_source.html','');});
<div class="title">NvCTypes.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_c_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef NV_C_TYPES_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define NV_C_TYPES_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef _INTPTR</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define _INTPTR 0</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html"> 43</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63"> 45</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;} <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html"> 49</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7"> 51</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html"> 55</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd"> 57</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">z</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;} <a class="code" href="struct_nvc_vec4.html">NvcVec4</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html"> 61</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a"> 63</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a">z</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="struct_nvc_quat.html">NvcQuat</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html"> 67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0"> 69</a></span>&#160; <a class="code" href="struct_nvc_quat.html">NvcQuat</a> <a class="code" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0">q</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280"> 70</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280">p</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <a class="code" href="struct_nvc_transform.html">NvcTransform</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html"> 74</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778"> 76</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, column2, <a class="code" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778">column3</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <a class="code" href="struct_nvc_mat34.html">NvcMat34</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html"> 80</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce"> 82</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, <a class="code" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce">column2</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <a class="code" href="struct_nvc_mat33.html">NvcMat33</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html"> 86</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0"> 88</a></span>&#160; <a class="code" href="struct_nvc_vec4.html">NvcVec4</a> column0, column1, column2, <a class="code" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0">column3</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} <a class="code" href="struct_nvc_mat44.html">NvcMat44</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html"> 92</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859"> 94</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859">minimum</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23"> 95</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23">maximum</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html"> 99</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486">n</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2"> 102</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2">d</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <a class="code" href="struct_nvc_plane.html">NvcPlane</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html"> 106</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c"> 108</a></span>&#160; int32_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c">y</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;} <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html"> 112</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc"> 114</a></span>&#160; int32_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc">z</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="struct_nvc_vec3i.html">NvcVec3i</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html"> 118</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1"> 120</a></span>&#160; int32_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1">z</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} <a class="code" href="struct_nvc_vec4i.html">NvcVec4i</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif // NV_C_TYPES_H</span></div><div class="ttc" id="struct_nvc_vec4_html_aae50c9e5c15841df0b2a8c181961a4dd"><div class="ttname"><a href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">NvcVec4::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:57</div></div>
+<a href="_nv_c_types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef NV_C_TYPES_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define NV_C_TYPES_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_preprocessor_8h.html">NvPreprocessor.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef _INTPTR</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define _INTPTR 0</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html"> 43</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63"> 45</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="struct_nvc_vec2.html#a6f6295fc8669ad95cb006a2189c0ed63">y</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;} <a class="code" href="struct_nvc_vec2.html">NvcVec2</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html"> 49</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7"> 51</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec3.html#a1702951e0e9b57bb36780a4d241dd7c7">z</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html"> 55</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd"> 57</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">z</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;} <a class="code" href="struct_nvc_vec4.html">NvcVec4</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html"> 61</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a"> 63</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_quat.html#aa5ccea618dbdbc9e2696640f8340166a">z</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="struct_nvc_quat.html">NvcQuat</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html"> 67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0"> 69</a></span>&#160; <a class="code" href="struct_nvc_quat.html">NvcQuat</a> <a class="code" href="struct_nvc_transform.html#a10315862c212f0dc956bcc9f19763ab0">q</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280"> 70</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_transform.html#aedef4947fa3ee9703840bc44209c9280">p</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;} <a class="code" href="struct_nvc_transform.html">NvcTransform</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html"> 74</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778"> 76</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, column2, <a class="code" href="struct_nvc_mat34.html#ae28507e0666b83e0521f5e1dcbeb6778">column3</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <a class="code" href="struct_nvc_mat34.html">NvcMat34</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html"> 80</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce"> 82</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> column0, column1, <a class="code" href="struct_nvc_mat33.html#a48c2246e3ca02909b8c8b31bc1eb21ce">column2</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <a class="code" href="struct_nvc_mat33.html">NvcMat33</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html"> 86</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0"> 88</a></span>&#160; <a class="code" href="struct_nvc_vec4.html">NvcVec4</a> column0, column1, column2, <a class="code" href="struct_nvc_mat44.html#a2d084c97fb112aa9619a4a9ce0f127b0">column3</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} <a class="code" href="struct_nvc_mat44.html">NvcMat44</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html"> 92</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859"> 94</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#af5ee79e127b719b80d93278d9f5fa859">minimum</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23"> 95</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_bounds3.html#ac4d86b4cae3f0209c18d2ece7bb8cc23">maximum</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;} <a class="code" href="struct_nvc_bounds3.html">NvcBounds3</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html"> 99</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486"> 101</a></span>&#160; <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="struct_nvc_plane.html#af1ef28bf53bc1bf9c07e4f3bf2233486">n</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2"> 102</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="struct_nvc_plane.html#a433462970a373d5eb77bd90a7e1613d2">d</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <a class="code" href="struct_nvc_plane.html">NvcPlane</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html"> 106</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c"> 108</a></span>&#160; int32_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="struct_nvc_vec2i.html#a2080925f84a15c89d75d8040d13a1d5c">y</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;} <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html"> 112</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc"> 114</a></span>&#160; int32_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc">z</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="struct_nvc_vec3i.html">NvcVec3i</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html"> 118</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1"> 120</a></span>&#160; int32_t <a class="code" href="bt_vector3_8h.html#a9ac999fc46ed7720280dca03ad1e4e62">x</a>, <a class="code" href="bt_vector3_8h.html#adbffb9cb652cea7e0343fa39dcae22c8">y</a>, <a class="code" href="struct_nvc_vec4i.html#afc8f5f39c678db56604e4465a80cf4b1">z</a>, <a class="code" href="bt_vector3_8h.html#a3570ef89f063fd0616ac57b1c4ae930e">w</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;} <a class="code" href="struct_nvc_vec4i.html">NvcVec4i</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif // NV_C_TYPES_H</span></div><div class="ttc" id="struct_nvc_vec4_html_aae50c9e5c15841df0b2a8c181961a4dd"><div class="ttname"><a href="struct_nvc_vec4.html#aae50c9e5c15841df0b2a8c181961a4dd">NvcVec4::z</a></div><div class="ttdeci">float z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:57</div></div>
<div class="ttc" id="struct_nvc_mat34_html"><div class="ttname"><a href="struct_nvc_mat34.html">NvcMat34</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:74</div></div>
<div class="ttc" id="struct_nvc_vec3i_html_a9337421c8401fa535ba403135b5244cc"><div class="ttname"><a href="struct_nvc_vec3i.html#a9337421c8401fa535ba403135b5244cc">NvcVec3i::z</a></div><div class="ttdeci">int32_t z</div><div class="ttdef"><b>Definition:</b> NvCTypes.h:114</div></div>
<div class="ttc" id="struct_nvc_vec4_html"><div class="ttname"><a href="struct_nvc_vec4.html">NvcVec4</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:55</div></div>
diff --git a/docs/source_docs/files/_nv_preprocessor_8h_source.html b/docs/source_docs/files/_nv_preprocessor_8h_source.html
index 8c816c4..4903360 100755
--- a/docs/source_docs/files/_nv_preprocessor_8h_source.html
+++ b/docs/source_docs/files/_nv_preprocessor_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_preprocessor_8h_source.html','');}
<div class="title">NvPreprocessor.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_nv_preprocessor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef NV_NVFOUNDATION_NVPREPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define NV_NVFOUNDATION_NVPREPROCESSOR_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">The following preprocessor identifiers specify compiler, OS, and architecture.</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">All definitions have a value of 1 or 0, use &#39;#if&#39; instead of &#39;#ifdef&#39;.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if _MSC_VER &gt;= 1900</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define NV_VC 14</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1800</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define NV_VC 12</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1700</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define NV_VC 11</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1600</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define NV_VC 10</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1500</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define NV_VC 9</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#error &quot;Unknown VC version&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#elif defined(__clang__)</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define NV_CLANG 1</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#elif defined(__SNC__)</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define NV_SNC 1</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#elif defined(__ghs__)</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#define NV_GHS 1</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) // note: __clang__, __SNC__, or __ghs__ imply __GNUC__</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#define NV_GCC 1</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#error &quot;Unknown compiler&quot;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#if defined(WINAPI_FAMILY) &amp;&amp; WINAPI_FAMILY == WINAPI_PARTITION_APP</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#define NV_WINRT 1 // Windows Runtime, either on Windows RT or Windows 8</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#elif defined(XBOXONE) || defined(_XBOX_ONE)</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#define NV_XBOXONE 1</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#elif defined(_WIN64) // note: XBOXONE implies _WIN64</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#define NV_WIN64 1</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#elif defined(_M_PPC)</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#define NV_X360 1</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#elif defined(_WIN32) // note: _M_PPC implies _WIN32</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#define NV_WIN32 1</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#elif defined(__ANDROID__)</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#define NV_ANDROID 1</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#elif defined(__linux__) // note: __ANDROID__ implies __linux__</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#define NV_LINUX 1</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#elif defined(__APPLE__) &amp;&amp; (defined(__arm__) || defined(__arm64__))</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#define NV_IOS 1</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#elif defined(__APPLE__)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#define NV_OSX 1</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#elif defined(__CELLOS_LV2__)</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define NV_PS3 1</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#elif defined(__ORBIS__)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#define NV_PS4 1</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#elif defined(__SNC__) &amp;&amp; defined(__arm__)</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define NV_PSP2 1</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#elif defined(__ghs__)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define NV_WIIU 1</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#error &quot;Unknown operating system&quot;</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#if defined(__x86_64__) || defined(_M_X64) // ps4 compiler defines _M_X64 without value</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#define NV_X64 1</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#elif defined(__i386__) || defined(_M_IX86)</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#define NV_X86 1</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#elif defined(__arm64__) || defined(__aarch64__)</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#define NV_A64 1</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#elif defined(__arm__) || defined(_M_ARM)</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#define NV_ARM 1</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#elif defined(__SPU__)</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#define NV_SPU 1</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#elif defined(__ppc__) || defined(_M_PPC) || defined(__CELLOS_LV2__)</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#define NV_PPC 1</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#error &quot;Unknown architecture&quot;</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#if defined(__i386__) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64)</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#define NV_SSE2 1</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#if defined(_M_ARM) || defined(__ARM_NEON__)</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#define NV_NEON 1</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#if defined(_M_PPC) || defined(__CELLOS_LV2__)</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define NV_VMX 1</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#ifndef NV_VC</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8803531575c33ce69a53cc887908fc33"> 142</a></span>&#160;<span class="preprocessor">#define NV_VC 0</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#ifndef NV_CLANG</span></div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="group__foundation.html#ga370315a9675c8a022aa13938c24795cd"> 145</a></span>&#160;<span class="preprocessor">#define NV_CLANG 0</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#ifndef NV_SNC</span></div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5d408962e8f40688ed6e1822476f4df8"> 148</a></span>&#160;<span class="preprocessor">#define NV_SNC 0</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#ifndef NV_GHS</span></div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="group__foundation.html#gaa8fa59562b3ff1f6e7d157357ef13341"> 151</a></span>&#160;<span class="preprocessor">#define NV_GHS 0</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#ifndef NV_GCC</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5da4978ba2d6d5dba81650d4ba75ca33"> 154</a></span>&#160;<span class="preprocessor">#define NV_GCC 0</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#ifndef NV_WINRT</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="group__foundation.html#gabaf152fefb2013909c162f535bc34fe0"> 157</a></span>&#160;<span class="preprocessor">#define NV_WINRT 0</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifndef NV_XBOXONE</span></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="group__foundation.html#ga61b0b6f3fcd356e6803e02ba39d1748f"> 160</a></span>&#160;<span class="preprocessor">#define NV_XBOXONE 0</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#ifndef NV_WIN64</span></div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="group__foundation.html#ga760e0cc06a731a203709b1341adea8aa"> 163</a></span>&#160;<span class="preprocessor">#define NV_WIN64 0</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifndef NV_X360</span></div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="group__foundation.html#ga581f7937204f23d8f9603643bd847caa"> 166</a></span>&#160;<span class="preprocessor">#define NV_X360 0</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#ifndef NV_WIN32</span></div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3cc94c20a8e2edb457fe19d591d130f6"> 169</a></span>&#160;<span class="preprocessor">#define NV_WIN32 0</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#ifndef NV_ANDROID</span></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="group__foundation.html#gaa58561a6bd8c7797488a51be7bb41f57"> 172</a></span>&#160;<span class="preprocessor">#define NV_ANDROID 0</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor">#ifndef NV_LINUX</span></div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="group__foundation.html#gae113833df736001a9b536ebd991a7a9f"> 175</a></span>&#160;<span class="preprocessor">#define NV_LINUX 0</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#ifndef NV_IOS</span></div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="group__foundation.html#ga42f9ade4a1a0e3546f020cf24f41a2fe"> 178</a></span>&#160;<span class="preprocessor">#define NV_IOS 0</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#ifndef NV_OSX</span></div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="group__foundation.html#gaf8c6a384ad2d9150720d111c154ac570"> 181</a></span>&#160;<span class="preprocessor">#define NV_OSX 0</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifndef NV_PS3</span></div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3f573c8d2c64b62808208d2821115a9b"> 184</a></span>&#160;<span class="preprocessor">#define NV_PS3 0</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#ifndef NV_PS4</span></div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="group__foundation.html#gae077cc2ead6684130598df6505f35047"> 187</a></span>&#160;<span class="preprocessor">#define NV_PS4 0</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#ifndef NV_PSP2</span></div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="group__foundation.html#ga741b29f3573822e82729569f0d7d7425"> 190</a></span>&#160;<span class="preprocessor">#define NV_PSP2 0</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#ifndef NV_WIIU</span></div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="group__foundation.html#ga6669bc19a93cd4e2ca5b7a91654e506d"> 193</a></span>&#160;<span class="preprocessor">#define NV_WIIU 0</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#ifndef NV_X64</span></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="group__foundation.html#gadbb99bc24045921bec5225ba8f31e49b"> 196</a></span>&#160;<span class="preprocessor">#define NV_X64 0</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#ifndef NV_X86</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="group__foundation.html#ga4986f9a9ce04c5584456e72fd08b954d"> 199</a></span>&#160;<span class="preprocessor">#define NV_X86 0</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#ifndef NV_A64</span></div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5c14e5e0d9641e29d184997f0c8b5ede"> 202</a></span>&#160;<span class="preprocessor">#define NV_A64 0</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#ifndef NV_ARM</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="group__foundation.html#gaaba32693e5dd5095968e0b608ad91435"> 205</a></span>&#160;<span class="preprocessor">#define NV_ARM 0</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#ifndef NV_SPU</span></div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="group__foundation.html#gae3a914c12073dca7995a96def860cbb9"> 208</a></span>&#160;<span class="preprocessor">#define NV_SPU 0</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifndef NV_PPC</span></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8b9c3f255c9417e6dea000798efe5e14"> 211</a></span>&#160;<span class="preprocessor">#define NV_PPC 0</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#ifndef NV_SSE2</span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="group__foundation.html#ga0ebb9e273e6fb1e6a3512540b992987d"> 214</a></span>&#160;<span class="preprocessor">#define NV_SSE2 0</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#ifndef NV_NEON</span></div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="group__foundation.html#ga57eadff0b64e7b4886a481d0539d6096"> 217</a></span>&#160;<span class="preprocessor">#define NV_NEON 0</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#ifndef NV_VMX</span></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="group__foundation.html#ga2800fec521cb345698308d35a2507ef8"> 220</a></span>&#160;<span class="preprocessor">#define NV_VMX 0</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">define anything not defined through the command line to 0</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#ifndef NV_DEBUG</span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="group__foundation.html#gaca12a62d0167edbf87022fc19b442f3f"> 227</a></span>&#160;<span class="preprocessor">#define NV_DEBUG 0</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#ifndef NV_CHECKED</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="group__foundation.html#gadc7c92598000916bb7dc9870cbdf3673"> 230</a></span>&#160;<span class="preprocessor">#define NV_CHECKED 0</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#ifndef NV_PROFILE</span></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9f8c142fe7fa19e70ab9ed0fb2f4bbf4"> 233</a></span>&#160;<span class="preprocessor">#define NV_PROFILE 0</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#ifndef NV_NVTX</span></div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9cb70a50d55e516eca829ff6680804d6"> 236</a></span>&#160;<span class="preprocessor">#define NV_NVTX 0</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#ifndef NV_DOXYGEN</span></div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9ca5b4b95cee3052f5a81085b93ea0b0"> 239</a></span>&#160;<span class="preprocessor">#define NV_DOXYGEN 0</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// compiler</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="group__foundation.html#gafd60b0665f37480ed74e7ce61618bda7"> 246</a></span>&#160;<span class="preprocessor">#define NV_GCC_FAMILY (NV_CLANG || NV_SNC || NV_GHS || NV_GCC)</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// os</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="group__foundation.html#ga87ed101f72d7c221456c5888d262b143"> 248</a></span>&#160;<span class="preprocessor">#define NV_WINDOWS_FAMILY (NV_WINRT || NV_WIN32 || NV_WIN64)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="group__foundation.html#ga135d491d4fa5afae888bcbc1c02f9745"> 249</a></span>&#160;<span class="preprocessor">#define NV_MICROSOFT_FAMILY (NV_XBOXONE || NV_X360 || NV_WINDOWS_FAMILY)</span></div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="group__foundation.html#ga715e5def4ab649f06ef2797528754a23"> 250</a></span>&#160;<span class="preprocessor">#define NV_LINUX_FAMILY (NV_LINUX || NV_ANDROID)</span></div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3399c6295a0a286d2753b466baec803a"> 251</a></span>&#160;<span class="preprocessor">#define NV_APPLE_FAMILY (NV_IOS || NV_OSX) // equivalent to #if __APPLE__</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3fbf498d4752502d264017ea75e9a18d"> 252</a></span>&#160;<span class="preprocessor">#define NV_UNIX_FAMILY (NV_LINUX_FAMILY || NV_APPLE_FAMILY) // shortcut for unix/posix platforms</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// architecture</span></div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="group__foundation.html#gae0d9bcbded673342d8eb643b3f6ab80f"> 254</a></span>&#160;<span class="preprocessor">#define NV_INTEL_FAMILY (NV_X64 || NV_X86)</span></div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9be1389e02a540f72e549e47ebd69ad3"> 255</a></span>&#160;<span class="preprocessor">#define NV_ARM_FAMILY (NV_ARM || NV_A64)</span></div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="group__foundation.html#gafff0169bf95189167358fd42525ea524"> 256</a></span>&#160;<span class="preprocessor">#define NV_P64_FAMILY (NV_X64 || NV_A64) // shortcut for 64-bit architectures</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// shortcut for PS3 PPU</span></div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3ebfc6594317671a0dee92ee3a442097"> 259</a></span>&#160;<span class="preprocessor">#define NV_PPU (NV_PS3&amp;&amp; NV_PPC)</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#ifndef NV_ENABLE_ASSERTS</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#if NV_DEBUG &amp;&amp; !defined(__CUDACC__)</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define NV_ENABLE_ASSERTS 1</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="group__foundation.html#ga436bd62778801fb05c2e3feb74469fc2"> 268</a></span>&#160;<span class="preprocessor">#define NV_ENABLE_ASSERTS 0</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#ifndef NV_C_EXPORT</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY || NV_LINUX || NV_PS4 || NV_XBOXONE</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#define NV_C_EXPORT extern &quot;C&quot;</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="group__foundation.html#ga19a2d2985857d5965342df4f355a6c0e"> 279</a></span>&#160;<span class="preprocessor">#define NV_C_EXPORT</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#if NV_UNIX_FAMILY &amp;&amp; __GNUC__ &gt;= 4</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#define NV_UNIX_EXPORT __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="group__foundation.html#ga1ac455e380b982cc3c4b696c9c0116e1"> 286</a></span>&#160;<span class="preprocessor">#define NV_UNIX_EXPORT</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#define NV_DLL_EXPORT __declspec(dllexport)</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#define NV_DLL_IMPORT __declspec(dllimport)</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0"> 293</a></span>&#160;<span class="preprocessor">#define NV_DLL_EXPORT NV_UNIX_EXPORT</span></div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5186e106b0627ce43b3ed7c6bea75252"> 294</a></span>&#160;<span class="preprocessor">#define NV_DLL_IMPORT</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY &amp;&amp; !NV_ARM_FAMILY || NV_WINRT</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#ifndef NV_FOUNDATION_DLL</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API NV_DLL_IMPORT</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#elif NV_FOUNDATION_DLL</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API NV_DLL_EXPORT</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#elif NV_UNIX_FAMILY</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#ifdef NV_FOUNDATION_DLL</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API NV_UNIX_EXPORT</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#ifndef NV_FOUNDATION_API</span></div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8023fffe9c79bf224a19de4e608b7644"> 319</a></span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor">#ifndef NV_CALL_CONV</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor">#define NV_CALL_CONV __cdecl</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="group__foundation.html#ga32dc60ff799b586ada4b484b0222dbd4"> 329</a></span>&#160;<span class="preprocessor">#define NV_CALL_CONV</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#define NV_PUSH_PACK_DEFAULT __pragma(pack(push, 8))</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor">#define NV_POP_PACK __pragma(pack(pop))</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY &amp;&amp; !NV_SPU</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#define NV_PUSH_PACK_DEFAULT _Pragma(&quot;pack(push, 8)&quot;)</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor">#define NV_POP_PACK _Pragma(&quot;pack(pop)&quot;)</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="group__foundation.html#gabeef70ca4881b4e7dab66c905b6077db"> 343</a></span>&#160;<span class="preprocessor">#define NV_PUSH_PACK_DEFAULT</span></div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="group__foundation.html#ga67b78c1675d9669274bf61e170ad8d68"> 344</a></span>&#160;<span class="preprocessor">#define NV_POP_PACK</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0"> 350</a></span>&#160;<span class="preprocessor">#define NV_INLINE inline</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor">#pragma inline_depth(255)</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE __forceinline</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor">#elif NV_LINUX // Workaround; Fedora Core 3 do not agree with force inline and NvcPool</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE inline</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE inline __attribute__((always_inline))</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e"> 365</a></span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE inline</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#define NV_NOINLINE __declspec(noinline)</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#define NV_NOINLINE __attribute__((noinline))</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="group__foundation.html#ga883c8e56338740a881af1e1071fd19cc"> 376</a></span>&#160;<span class="preprocessor">#define NV_NOINLINE</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#if defined(__CUDACC__)</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#define NV_RESTRICT __restrict__</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="group__foundation.html#ga4c0c4cd5144f3366fc6e6a2c30a68c37"> 385</a></span>&#160;<span class="preprocessor">#define NV_RESTRICT __restrict</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor">#define NV_NOALIAS __declspec(noalias)</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8d631fdab8fe45ea1e4dad3caa8f7a95"> 394</a></span>&#160;<span class="preprocessor">#define NV_NOALIAS</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#ifndef NV_ALIGN</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor">#define NV_ALIGN(alignment, decl) __declspec(align(alignment)) decl</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#define NV_ALIGN_PREFIX(alignment) __declspec(align(alignment))</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#define NV_ALIGN_SUFFIX(alignment)</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#define NV_ALIGN(alignment, decl) decl __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#define NV_ALIGN_PREFIX(alignment)</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#define NV_ALIGN_SUFFIX(alignment) __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5a10a2ef5a9db1edafe12bfc0af52869"> 418</a></span>&#160;<span class="preprocessor">#define NV_ALIGN(alignment, decl)</span></div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="group__foundation.html#gabe5430f2c9a3661ad09593408d2389b0"> 419</a></span>&#160;<span class="preprocessor">#define NV_ALIGN_PREFIX(alignment)</span></div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="group__foundation.html#ga7bad965576a26ea4543e6717f2a3367b"> 420</a></span>&#160;<span class="preprocessor">#define NV_ALIGN_SUFFIX(alignment)</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="group__foundation.html#ga2f137f0791dcbf897e62583f14399f65"> 434</a></span>&#160;<span class="preprocessor">#define NV_DEPRECATED</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment">// static assert</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 4 || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ &gt;= 7)) || defined(__ORBIS__)</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#define NV_COMPILE_TIME_ASSERT(exp) typedef char NvCompileTimeAssert_Dummy[(exp) ? 1 : -1] __attribute__((unused))</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5"> 444</a></span>&#160;<span class="preprocessor">#define NV_COMPILE_TIME_ASSERT(exp) typedef char NvCompileTimeAssert_Dummy[(exp) ? 1 : -1]</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#if NV_GCC_FAMILY &amp;&amp; !NV_SNC &amp;&amp; !NV_GHS</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#define NV_OFFSET_OF(X, Y) __builtin_offsetof(X, Y)</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed"> 450</a></span>&#160;<span class="preprocessor">#define NV_OFFSET_OF(X, Y) offsetof(X, Y)</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="group__foundation.html#gac028758258875ccf553bf9d54d4095a6"> 453</a></span>&#160;<span class="preprocessor">#define NV_OFFSETOF_BASE 0x100 // casting the null ptr takes a special-case code path, which we don&#39;t want</span></div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="group__foundation.html#gaf3a2e42fdfaeb8ba7832216b3fd8f8bd"> 454</a></span>&#160;<span class="preprocessor">#define NV_OFFSET_OF_RT(Class, Member) \</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> (reinterpret_cast&lt;size_t&gt;(&amp;reinterpret_cast&lt;Class*&gt;(NV_OFFSETOF_BASE)-&gt;Member) - size_t(NV_OFFSETOF_BASE))</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment">// check that exactly one of NDEBUG and _DEBUG is defined</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor">#if !defined(NDEBUG) ^ defined(_DEBUG)</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#error Exactly one of NDEBUG and _DEBUG needs to be defined!</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment">// make sure NV_CHECKED is defined in all _DEBUG configurations as well</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#if !defined(NV_CHECKED) &amp;&amp; defined(NV_DEBUG)</span></div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor">#error NV_CHECKED must be defined when NV_DEBUG is defined</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#ifdef __CUDACC__</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#define NV_CUDA_CALLABLE __host__ __device__</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="group__foundation.html#gaf345e5634817936729c938b00cf10a25"> 470</a></span>&#160;<span class="preprocessor">#define NV_CUDA_CALLABLE</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="comment">// avoid unreferenced parameter warning</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="comment">// preferred solution: omit the parameter&#39;s name from the declaration</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd"> 476</a></span>&#160;<a class="code" href="group__foundation.html#gaf345e5634817936729c938b00cf10a25">NV_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a>(T <span class="keyword">const</span>&amp;)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;}</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="comment">// Ensure that the application hasn&#39;t tweaked the pack value to less than 8, which would break</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="comment">// matching between the API headers and the binaries</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment">// This assert works on win32/win64/360/ps3, but may need further specialization on other platforms.</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="comment">// Some GCC compilers need the compiler flag -malign-double to be set.</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="comment">// Apparently the apple-clang-llvm compiler doesn&#39;t support malign-double.</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#if NV_PS4 || NV_APPLE_FAMILY</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">char</span> <a class="code" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae">_</a>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">long</span> <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;};</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor">#elif NV_ANDROID</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordtype">char</span> <a class="code" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae">_</a>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;};</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="struct_nv_pack_validation.html"> 498</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;{</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae"> 500</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae">_</a>;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61"> 501</a></span>&#160; <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;};</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#if !NV_APPLE_FAMILY</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<a class="code" href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a>, <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>) == 8);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment">// use in a cpp file to suppress LNK4221</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#define NV_DUMMY_SYMBOL \</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> namespace \</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> char NvDummySymbol; \</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> }</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="group__foundation.html#ga82f2b8161bc1f7e726ac645c200769a3"> 516</a></span>&#160;<span class="preprocessor">#define NV_DUMMY_SYMBOL</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor">#if NV_GCC_FAMILY &amp;&amp; !NV_GHS</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#define NV_WEAK_SYMBOL __attribute__((weak)) // this is to support SIMD constant merging in template specialization</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="group__foundation.html#gac77dc6def0440a1b6eaafe31abeaea34"> 522</a></span>&#160;<span class="preprocessor">#define NV_WEAK_SYMBOL</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment">// Macro for avoiding default assignment and copy, because doing this by inheritance can increase class size on some</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment">// platforms.</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd"> 527</a></span>&#160;<span class="preprocessor">#define NV_NOCOPY(Class) \</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor">protected: \</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> Class(const Class&amp;); \</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> Class&amp; operator=(const Class&amp;);</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="group__foundation.html#ga28bcef106e19cb60cd318a30acd14f05"> 533</a></span>&#160;<span class="preprocessor">#define NV_STRINGIZE_HELPER(X) #X</span></div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3eaed087256d1041f293b4ee82db4d46"> 534</a></span>&#160;<span class="preprocessor">#define NV_STRINGIZE(X) NV_STRINGIZE_HELPER(X)</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="group__foundation.html#ga6e5cc78f0b9d8e462049d53f4b5181ae"> 536</a></span>&#160;<span class="preprocessor">#define NV_CONCAT_HELPER(X, Y) X##Y</span></div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="group__foundation.html#gae5369ee72783436b1679b593f06c038d"> 537</a></span>&#160;<span class="preprocessor">#define NV_CONCAT(X, Y) NV_CONCAT_HELPER(X, Y)</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif // #ifndef NV_NVFOUNDATION_NVPREPROCESSOR_H</span></div><div class="ttc" id="group__foundation_html_ga75e36581442a14a7187644fd92b799f5"><div class="ttname"><a href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a></div><div class="ttdeci">#define NV_COMPILE_TIME_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:444</div></div>
+<a href="_nv_preprocessor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2008-2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef NV_NVFOUNDATION_NVPREPROCESSOR_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define NV_NVFOUNDATION_NVPREPROCESSOR_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">The following preprocessor identifiers specify compiler, OS, and architecture.</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">All definitions have a value of 1 or 0, use &#39;#if&#39; instead of &#39;#ifdef&#39;.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if _MSC_VER &gt;= 1900</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define NV_VC 14</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1800</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define NV_VC 12</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1700</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define NV_VC 11</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1600</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define NV_VC 10</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#elif _MSC_VER &gt;= 1500</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define NV_VC 9</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#error &quot;Unknown VC version&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#elif defined(__clang__)</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define NV_CLANG 1</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#elif defined(__SNC__)</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define NV_SNC 1</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#elif defined(__ghs__)</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#define NV_GHS 1</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) // note: __clang__, __SNC__, or __ghs__ imply __GNUC__</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#define NV_GCC 1</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#error &quot;Unknown compiler&quot;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#if defined(WINAPI_FAMILY) &amp;&amp; WINAPI_FAMILY == WINAPI_PARTITION_APP</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#define NV_WINRT 1 // Windows Runtime, either on Windows RT or Windows 8</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#elif defined(XBOXONE) || defined(_XBOX_ONE)</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#define NV_XBOXONE 1</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#elif defined(_WIN64) // note: XBOXONE implies _WIN64</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#define NV_WIN64 1</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#elif defined(_M_PPC)</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#define NV_X360 1</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#elif defined(_WIN32) // note: _M_PPC implies _WIN32</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#define NV_WIN32 1</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#elif defined(__ANDROID__)</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#define NV_ANDROID 1</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#elif defined(__linux__) // note: __ANDROID__ implies __linux__</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#define NV_LINUX 1</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#elif defined(__APPLE__) &amp;&amp; (defined(__arm__) || defined(__arm64__))</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#define NV_IOS 1</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#elif defined(__APPLE__)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#define NV_OSX 1</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#elif defined(__CELLOS_LV2__)</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define NV_PS3 1</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#elif defined(__ORBIS__)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#define NV_PS4 1</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#elif defined(__SNC__) &amp;&amp; defined(__arm__)</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define NV_PSP2 1</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#elif defined(__ghs__)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define NV_WIIU 1</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#error &quot;Unknown operating system&quot;</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#if defined(__x86_64__) || defined(_M_X64) // ps4 compiler defines _M_X64 without value</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#define NV_X64 1</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#elif defined(__i386__) || defined(_M_IX86)</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#define NV_X86 1</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#elif defined(__arm64__) || defined(__aarch64__)</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#define NV_A64 1</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#elif defined(__arm__) || defined(_M_ARM)</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#define NV_ARM 1</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#elif defined(__SPU__)</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#define NV_SPU 1</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#elif defined(__ppc__) || defined(_M_PPC) || defined(__CELLOS_LV2__)</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#define NV_PPC 1</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#error &quot;Unknown architecture&quot;</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#if defined(__i386__) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64)</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#define NV_SSE2 1</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#if defined(_M_ARM) || defined(__ARM_NEON__)</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#define NV_NEON 1</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#if defined(_M_PPC) || defined(__CELLOS_LV2__)</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define NV_VMX 1</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#ifndef NV_VC</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8803531575c33ce69a53cc887908fc33"> 142</a></span>&#160;<span class="preprocessor">#define NV_VC 0</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#ifndef NV_CLANG</span></div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="group__foundation.html#ga370315a9675c8a022aa13938c24795cd"> 145</a></span>&#160;<span class="preprocessor">#define NV_CLANG 0</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#ifndef NV_SNC</span></div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5d408962e8f40688ed6e1822476f4df8"> 148</a></span>&#160;<span class="preprocessor">#define NV_SNC 0</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#ifndef NV_GHS</span></div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="group__foundation.html#gaa8fa59562b3ff1f6e7d157357ef13341"> 151</a></span>&#160;<span class="preprocessor">#define NV_GHS 0</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#ifndef NV_GCC</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5da4978ba2d6d5dba81650d4ba75ca33"> 154</a></span>&#160;<span class="preprocessor">#define NV_GCC 0</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#ifndef NV_WINRT</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="group__foundation.html#gabaf152fefb2013909c162f535bc34fe0"> 157</a></span>&#160;<span class="preprocessor">#define NV_WINRT 0</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifndef NV_XBOXONE</span></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="group__foundation.html#ga61b0b6f3fcd356e6803e02ba39d1748f"> 160</a></span>&#160;<span class="preprocessor">#define NV_XBOXONE 0</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#ifndef NV_WIN64</span></div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="group__foundation.html#ga760e0cc06a731a203709b1341adea8aa"> 163</a></span>&#160;<span class="preprocessor">#define NV_WIN64 0</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifndef NV_X360</span></div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="group__foundation.html#ga581f7937204f23d8f9603643bd847caa"> 166</a></span>&#160;<span class="preprocessor">#define NV_X360 0</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#ifndef NV_WIN32</span></div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3cc94c20a8e2edb457fe19d591d130f6"> 169</a></span>&#160;<span class="preprocessor">#define NV_WIN32 0</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#ifndef NV_ANDROID</span></div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="group__foundation.html#gaa58561a6bd8c7797488a51be7bb41f57"> 172</a></span>&#160;<span class="preprocessor">#define NV_ANDROID 0</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor">#ifndef NV_LINUX</span></div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="group__foundation.html#gae113833df736001a9b536ebd991a7a9f"> 175</a></span>&#160;<span class="preprocessor">#define NV_LINUX 0</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#ifndef NV_IOS</span></div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="group__foundation.html#ga42f9ade4a1a0e3546f020cf24f41a2fe"> 178</a></span>&#160;<span class="preprocessor">#define NV_IOS 0</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#ifndef NV_OSX</span></div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="group__foundation.html#gaf8c6a384ad2d9150720d111c154ac570"> 181</a></span>&#160;<span class="preprocessor">#define NV_OSX 0</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifndef NV_PS3</span></div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3f573c8d2c64b62808208d2821115a9b"> 184</a></span>&#160;<span class="preprocessor">#define NV_PS3 0</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#ifndef NV_PS4</span></div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="group__foundation.html#gae077cc2ead6684130598df6505f35047"> 187</a></span>&#160;<span class="preprocessor">#define NV_PS4 0</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#ifndef NV_PSP2</span></div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="group__foundation.html#ga741b29f3573822e82729569f0d7d7425"> 190</a></span>&#160;<span class="preprocessor">#define NV_PSP2 0</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#ifndef NV_WIIU</span></div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="group__foundation.html#ga6669bc19a93cd4e2ca5b7a91654e506d"> 193</a></span>&#160;<span class="preprocessor">#define NV_WIIU 0</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#ifndef NV_X64</span></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="group__foundation.html#gadbb99bc24045921bec5225ba8f31e49b"> 196</a></span>&#160;<span class="preprocessor">#define NV_X64 0</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#ifndef NV_X86</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="group__foundation.html#ga4986f9a9ce04c5584456e72fd08b954d"> 199</a></span>&#160;<span class="preprocessor">#define NV_X86 0</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#ifndef NV_A64</span></div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5c14e5e0d9641e29d184997f0c8b5ede"> 202</a></span>&#160;<span class="preprocessor">#define NV_A64 0</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#ifndef NV_ARM</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="group__foundation.html#gaaba32693e5dd5095968e0b608ad91435"> 205</a></span>&#160;<span class="preprocessor">#define NV_ARM 0</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#ifndef NV_SPU</span></div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="group__foundation.html#gae3a914c12073dca7995a96def860cbb9"> 208</a></span>&#160;<span class="preprocessor">#define NV_SPU 0</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#ifndef NV_PPC</span></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8b9c3f255c9417e6dea000798efe5e14"> 211</a></span>&#160;<span class="preprocessor">#define NV_PPC 0</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#ifndef NV_SSE2</span></div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="group__foundation.html#ga0ebb9e273e6fb1e6a3512540b992987d"> 214</a></span>&#160;<span class="preprocessor">#define NV_SSE2 0</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#ifndef NV_NEON</span></div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="group__foundation.html#ga57eadff0b64e7b4886a481d0539d6096"> 217</a></span>&#160;<span class="preprocessor">#define NV_NEON 0</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#ifndef NV_VMX</span></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="group__foundation.html#ga2800fec521cb345698308d35a2507ef8"> 220</a></span>&#160;<span class="preprocessor">#define NV_VMX 0</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">define anything not defined through the command line to 0</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#ifndef NV_DEBUG</span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="group__foundation.html#gaca12a62d0167edbf87022fc19b442f3f"> 227</a></span>&#160;<span class="preprocessor">#define NV_DEBUG 0</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#ifndef NV_CHECKED</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="group__foundation.html#gadc7c92598000916bb7dc9870cbdf3673"> 230</a></span>&#160;<span class="preprocessor">#define NV_CHECKED 0</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#ifndef NV_PROFILE</span></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9f8c142fe7fa19e70ab9ed0fb2f4bbf4"> 233</a></span>&#160;<span class="preprocessor">#define NV_PROFILE 0</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#ifndef NV_NVTX</span></div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9cb70a50d55e516eca829ff6680804d6"> 236</a></span>&#160;<span class="preprocessor">#define NV_NVTX 0</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#ifndef NV_DOXYGEN</span></div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9ca5b4b95cee3052f5a81085b93ea0b0"> 239</a></span>&#160;<span class="preprocessor">#define NV_DOXYGEN 0</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// compiler</span></div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="group__foundation.html#gafd60b0665f37480ed74e7ce61618bda7"> 246</a></span>&#160;<span class="preprocessor">#define NV_GCC_FAMILY (NV_CLANG || NV_SNC || NV_GHS || NV_GCC)</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// os</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="group__foundation.html#ga87ed101f72d7c221456c5888d262b143"> 248</a></span>&#160;<span class="preprocessor">#define NV_WINDOWS_FAMILY (NV_WINRT || NV_WIN32 || NV_WIN64)</span></div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="group__foundation.html#ga135d491d4fa5afae888bcbc1c02f9745"> 249</a></span>&#160;<span class="preprocessor">#define NV_MICROSOFT_FAMILY (NV_XBOXONE || NV_X360 || NV_WINDOWS_FAMILY)</span></div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="group__foundation.html#ga715e5def4ab649f06ef2797528754a23"> 250</a></span>&#160;<span class="preprocessor">#define NV_LINUX_FAMILY (NV_LINUX || NV_ANDROID)</span></div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3399c6295a0a286d2753b466baec803a"> 251</a></span>&#160;<span class="preprocessor">#define NV_APPLE_FAMILY (NV_IOS || NV_OSX) // equivalent to #if __APPLE__</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3fbf498d4752502d264017ea75e9a18d"> 252</a></span>&#160;<span class="preprocessor">#define NV_UNIX_FAMILY (NV_LINUX_FAMILY || NV_APPLE_FAMILY) // shortcut for unix/posix platforms</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// architecture</span></div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="group__foundation.html#gae0d9bcbded673342d8eb643b3f6ab80f"> 254</a></span>&#160;<span class="preprocessor">#define NV_INTEL_FAMILY (NV_X64 || NV_X86)</span></div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="group__foundation.html#ga9be1389e02a540f72e549e47ebd69ad3"> 255</a></span>&#160;<span class="preprocessor">#define NV_ARM_FAMILY (NV_ARM || NV_A64)</span></div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="group__foundation.html#gafff0169bf95189167358fd42525ea524"> 256</a></span>&#160;<span class="preprocessor">#define NV_P64_FAMILY (NV_X64 || NV_A64) // shortcut for 64-bit architectures</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// shortcut for PS3 PPU</span></div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3ebfc6594317671a0dee92ee3a442097"> 259</a></span>&#160;<span class="preprocessor">#define NV_PPU (NV_PS3&amp;&amp; NV_PPC)</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#ifndef NV_ENABLE_ASSERTS</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#if NV_DEBUG &amp;&amp; !defined(__CUDACC__)</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define NV_ENABLE_ASSERTS 1</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="group__foundation.html#ga436bd62778801fb05c2e3feb74469fc2"> 268</a></span>&#160;<span class="preprocessor">#define NV_ENABLE_ASSERTS 0</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#ifndef NV_C_EXPORT</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY || NV_LINUX || NV_PS4 || NV_XBOXONE</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#define NV_C_EXPORT extern &quot;C&quot;</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="group__foundation.html#ga19a2d2985857d5965342df4f355a6c0e"> 279</a></span>&#160;<span class="preprocessor">#define NV_C_EXPORT</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#if NV_UNIX_FAMILY &amp;&amp; __GNUC__ &gt;= 4</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#define NV_UNIX_EXPORT __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="group__foundation.html#ga1ac455e380b982cc3c4b696c9c0116e1"> 286</a></span>&#160;<span class="preprocessor">#define NV_UNIX_EXPORT</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#define NV_DLL_EXPORT __declspec(dllexport)</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#define NV_DLL_IMPORT __declspec(dllimport)</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0"> 293</a></span>&#160;<span class="preprocessor">#define NV_DLL_EXPORT NV_UNIX_EXPORT</span></div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5186e106b0627ce43b3ed7c6bea75252"> 294</a></span>&#160;<span class="preprocessor">#define NV_DLL_IMPORT</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#if NV_WINDOWS_FAMILY &amp;&amp; !NV_ARM_FAMILY || NV_WINRT</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#ifndef NV_FOUNDATION_DLL</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API NV_DLL_IMPORT</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#elif NV_FOUNDATION_DLL</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API NV_DLL_EXPORT</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#elif NV_UNIX_FAMILY</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#ifdef NV_FOUNDATION_DLL</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API NV_UNIX_EXPORT</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#ifndef NV_FOUNDATION_API</span></div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8023fffe9c79bf224a19de4e608b7644"> 319</a></span>&#160;<span class="preprocessor">#define NV_FOUNDATION_API</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor">#ifndef NV_CALL_CONV</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor">#define NV_CALL_CONV __cdecl</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="group__foundation.html#ga32dc60ff799b586ada4b484b0222dbd4"> 329</a></span>&#160;<span class="preprocessor">#define NV_CALL_CONV</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#define NV_PUSH_PACK_DEFAULT __pragma(pack(push, 8))</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor">#define NV_POP_PACK __pragma(pack(pop))</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY &amp;&amp; !NV_SPU</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#define NV_PUSH_PACK_DEFAULT _Pragma(&quot;pack(push, 8)&quot;)</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor">#define NV_POP_PACK _Pragma(&quot;pack(pop)&quot;)</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="group__foundation.html#gabeef70ca4881b4e7dab66c905b6077db"> 343</a></span>&#160;<span class="preprocessor">#define NV_PUSH_PACK_DEFAULT</span></div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="group__foundation.html#ga67b78c1675d9669274bf61e170ad8d68"> 344</a></span>&#160;<span class="preprocessor">#define NV_POP_PACK</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0"> 350</a></span>&#160;<span class="preprocessor">#define NV_INLINE inline</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor">#pragma inline_depth(255)</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE __forceinline</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor">#elif NV_LINUX // Workaround; Fedora Core 3 do not agree with force inline and NvcPool</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE inline</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE inline __attribute__((always_inline))</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e"> 365</a></span>&#160;<span class="preprocessor">#define NV_FORCE_INLINE inline</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#define NV_NOINLINE __declspec(noinline)</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#define NV_NOINLINE __attribute__((noinline))</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="group__foundation.html#ga883c8e56338740a881af1e1071fd19cc"> 376</a></span>&#160;<span class="preprocessor">#define NV_NOINLINE</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#if defined(__CUDACC__)</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#define NV_RESTRICT __restrict__</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="group__foundation.html#ga4c0c4cd5144f3366fc6e6a2c30a68c37"> 385</a></span>&#160;<span class="preprocessor">#define NV_RESTRICT __restrict</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor">#define NV_NOALIAS __declspec(noalias)</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="group__foundation.html#ga8d631fdab8fe45ea1e4dad3caa8f7a95"> 394</a></span>&#160;<span class="preprocessor">#define NV_NOALIAS</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#ifndef NV_ALIGN</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#if NV_MICROSOFT_FAMILY</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor">#define NV_ALIGN(alignment, decl) __declspec(align(alignment)) decl</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#define NV_ALIGN_PREFIX(alignment) __declspec(align(alignment))</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#define NV_ALIGN_SUFFIX(alignment)</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#elif NV_GCC_FAMILY</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#define NV_ALIGN(alignment, decl) decl __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#define NV_ALIGN_PREFIX(alignment)</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#define NV_ALIGN_SUFFIX(alignment) __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="group__foundation.html#ga5a10a2ef5a9db1edafe12bfc0af52869"> 418</a></span>&#160;<span class="preprocessor">#define NV_ALIGN(alignment, decl)</span></div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="group__foundation.html#gabe5430f2c9a3661ad09593408d2389b0"> 419</a></span>&#160;<span class="preprocessor">#define NV_ALIGN_PREFIX(alignment)</span></div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="group__foundation.html#ga7bad965576a26ea4543e6717f2a3367b"> 420</a></span>&#160;<span class="preprocessor">#define NV_ALIGN_SUFFIX(alignment)</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="group__foundation.html#ga2f137f0791dcbf897e62583f14399f65"> 434</a></span>&#160;<span class="preprocessor">#define NV_DEPRECATED</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment">// static assert</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 4 || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ &gt;= 7)) || defined(__ORBIS__)</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#define NV_COMPILE_TIME_ASSERT(exp) typedef char NvCompileTimeAssert_Dummy[(exp) ? 1 : -1] __attribute__((unused))</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5"> 444</a></span>&#160;<span class="preprocessor">#define NV_COMPILE_TIME_ASSERT(exp) typedef char NvCompileTimeAssert_Dummy[(exp) ? 1 : -1]</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#if NV_GCC_FAMILY &amp;&amp; !NV_SNC &amp;&amp; !NV_GHS</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#define NV_OFFSET_OF(X, Y) __builtin_offsetof(X, Y)</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed"> 450</a></span>&#160;<span class="preprocessor">#define NV_OFFSET_OF(X, Y) offsetof(X, Y)</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="group__foundation.html#gac028758258875ccf553bf9d54d4095a6"> 453</a></span>&#160;<span class="preprocessor">#define NV_OFFSETOF_BASE 0x100 // casting the null ptr takes a special-case code path, which we don&#39;t want</span></div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="group__foundation.html#gaf3a2e42fdfaeb8ba7832216b3fd8f8bd"> 454</a></span>&#160;<span class="preprocessor">#define NV_OFFSET_OF_RT(Class, Member) \</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> (reinterpret_cast&lt;size_t&gt;(&amp;reinterpret_cast&lt;Class*&gt;(NV_OFFSETOF_BASE)-&gt;Member) - size_t(NV_OFFSETOF_BASE))</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment">// check that exactly one of NDEBUG and _DEBUG is defined</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor">#if !defined(NDEBUG) ^ defined(_DEBUG)</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#error Exactly one of NDEBUG and _DEBUG needs to be defined!</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment">// make sure NV_CHECKED is defined in all _DEBUG configurations as well</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#if !defined(NV_CHECKED) &amp;&amp; defined(NV_DEBUG)</span></div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor">#error NV_CHECKED must be defined when NV_DEBUG is defined</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#ifdef __CUDACC__</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#define NV_CUDA_CALLABLE __host__ __device__</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="group__foundation.html#gaf345e5634817936729c938b00cf10a25"> 470</a></span>&#160;<span class="preprocessor">#define NV_CUDA_CALLABLE</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="comment">// avoid unreferenced parameter warning</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="comment">// preferred solution: omit the parameter&#39;s name from the declaration</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd"> 476</a></span>&#160;<a class="code" href="group__foundation.html#gaf345e5634817936729c938b00cf10a25">NV_CUDA_CALLABLE</a> <a class="code" href="group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0">NV_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a>(T <span class="keyword">const</span>&amp;)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;}</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="comment">// Ensure that the application hasn&#39;t tweaked the pack value to less than 8, which would break</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="comment">// matching between the API headers and the binaries</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment">// This assert works on win32/win64/360/ps3, but may need further specialization on other platforms.</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="comment">// Some GCC compilers need the compiler flag -malign-double to be set.</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="comment">// Apparently the apple-clang-llvm compiler doesn&#39;t support malign-double.</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#if NV_PS4 || NV_APPLE_FAMILY</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">char</span> <a class="code" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae">_</a>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">long</span> <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;};</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor">#elif NV_ANDROID</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordtype">char</span> <a class="code" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae">_</a>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;};</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="struct_nv_pack_validation.html"> 498</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;{</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae"> 500</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="struct_nv_pack_validation.html#a7ea43411fcaa5aee6c47a9d2241cb5ae">_</a>;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61"> 501</a></span>&#160; <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;};</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#if !NV_APPLE_FAMILY</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<a class="code" href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a>(<a class="code" href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a>(<a class="code" href="struct_nv_pack_validation.html">NvPackValidation</a>, <a class="code" href="struct_nv_pack_validation.html#a40f4235d496c08e79e6dcd7e82416a61">a</a>) == 8);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment">// use in a cpp file to suppress LNK4221</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#if NV_VC</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#define NV_DUMMY_SYMBOL \</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> namespace \</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> { \</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> char NvDummySymbol; \</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> }</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="group__foundation.html#ga82f2b8161bc1f7e726ac645c200769a3"> 516</a></span>&#160;<span class="preprocessor">#define NV_DUMMY_SYMBOL</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor">#if NV_GCC_FAMILY &amp;&amp; !NV_GHS</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#define NV_WEAK_SYMBOL __attribute__((weak)) // this is to support SIMD constant merging in template specialization</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="group__foundation.html#gac77dc6def0440a1b6eaafe31abeaea34"> 522</a></span>&#160;<span class="preprocessor">#define NV_WEAK_SYMBOL</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment">// Macro for avoiding default assignment and copy, because doing this by inheritance can increase class size on some</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment">// platforms.</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd"> 527</a></span>&#160;<span class="preprocessor">#define NV_NOCOPY(Class) \</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> \</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor">protected: \</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> Class(const Class&amp;); \</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> Class&amp; operator=(const Class&amp;);</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="group__foundation.html#ga28bcef106e19cb60cd318a30acd14f05"> 533</a></span>&#160;<span class="preprocessor">#define NV_STRINGIZE_HELPER(X) #X</span></div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="group__foundation.html#ga3eaed087256d1041f293b4ee82db4d46"> 534</a></span>&#160;<span class="preprocessor">#define NV_STRINGIZE(X) NV_STRINGIZE_HELPER(X)</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="group__foundation.html#ga6e5cc78f0b9d8e462049d53f4b5181ae"> 536</a></span>&#160;<span class="preprocessor">#define NV_CONCAT_HELPER(X, Y) X##Y</span></div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="group__foundation.html#gae5369ee72783436b1679b593f06c038d"> 537</a></span>&#160;<span class="preprocessor">#define NV_CONCAT(X, Y) NV_CONCAT_HELPER(X, Y)</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif // #ifndef NV_NVFOUNDATION_NVPREPROCESSOR_H</span></div><div class="ttc" id="group__foundation_html_ga75e36581442a14a7187644fd92b799f5"><div class="ttname"><a href="group__foundation.html#ga75e36581442a14a7187644fd92b799f5">NV_COMPILE_TIME_ASSERT</a></div><div class="ttdeci">#define NV_COMPILE_TIME_ASSERT(exp)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:444</div></div>
<div class="ttc" id="group__foundation_html_ga6739a1df7c5ae91e0d759cb4481b84dd"><div class="ttname"><a href="group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd">NV_UNUSED</a></div><div class="ttdeci">NV_CUDA_CALLABLE NV_INLINE void NV_UNUSED(T const &amp;)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:476</div></div>
<div class="ttc" id="group__foundation_html_ga7c2d7c9e736e71bfdf8524c2155a13ed"><div class="ttname"><a href="group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed">NV_OFFSET_OF</a></div><div class="ttdeci">#define NV_OFFSET_OF(X, Y)</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:450</div></div>
<div class="ttc" id="group__foundation_html_gaf345e5634817936729c938b00cf10a25"><div class="ttname"><a href="group__foundation.html#gaf345e5634817936729c938b00cf10a25">NV_CUDA_CALLABLE</a></div><div class="ttdeci">#define NV_CUDA_CALLABLE</div><div class="ttdef"><b>Definition:</b> NvPreprocessor.h:470</div></div>
diff --git a/docs/source_docs/files/_px_convex_mesh_geometry_d_t_o_8h_source.html b/docs/source_docs/files/_px_convex_mesh_geometry_d_t_o_8h_source.html
index 6adcdc2..6e0157e 100755
--- a/docs/source_docs/files/_px_convex_mesh_geometry_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_px_convex_mesh_geometry_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_px_convex_mesh_geometry_d_t_o_8h_sour
<div class="title">PxConvexMeshGeometryDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_px_convex_mesh_geometry_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxConvexMeshGeometry, physx::PxConvexMeshGeometry, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_convex_mesh_geometry.html">Nv::Blast::Serialization::PxConvexMeshGeometry</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_px_convex_mesh_geometry_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxConvexMeshGeometry.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxConvexMeshGeometry, physx::PxConvexMeshGeometry, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_convex_mesh_geometry.html">Nv::Blast::Serialization::PxConvexMeshGeometry</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="_d_t_o_macros_8h_html"><div class="ttname"><a href="_d_t_o_macros_8h.html">DTOMacros.h</a></div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_px_convex_mesh_geometry_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_px_convex_mesh_geometry.html">Nv::Blast::Serialization::PxConvexMeshGeometry</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxSerialization.capn.h:89</div></div>
diff --git a/docs/source_docs/files/_px_mesh_scale_d_t_o_8h_source.html b/docs/source_docs/files/_px_mesh_scale_d_t_o_8h_source.html
index f5cfdf1..6ce2e26 100755
--- a/docs/source_docs/files/_px_mesh_scale_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_px_mesh_scale_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_px_mesh_scale_d_t_o_8h_source.html','
<div class="title">PxMeshScaleDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_px_mesh_scale_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxMeshScale.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxMeshScale, physx::PxMeshScale, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_mesh_scale.html">Nv::Blast::Serialization::PxMeshScale</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_px_mesh_scale_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxMeshScale.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxMeshScale, physx::PxMeshScale, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_mesh_scale.html">Nv::Blast::Serialization::PxMeshScale</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_px_mesh_scale_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_px_mesh_scale.html">Nv::Blast::Serialization::PxMeshScale</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxSerialization.capn.h:121</div></div>
<div class="ttc" id="_d_t_o_macros_8h_html"><div class="ttname"><a href="_d_t_o_macros_8h.html">DTOMacros.h</a></div></div>
diff --git a/docs/source_docs/files/_px_quat_d_t_o_8h_source.html b/docs/source_docs/files/_px_quat_d_t_o_8h_source.html
index 3b72e70..c060faa 100755
--- a/docs/source_docs/files/_px_quat_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_px_quat_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_px_quat_d_t_o_8h_source.html','');});
<div class="title">PxQuatDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_px_quat_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxQuat.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxQuat, physx::PxQuat, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_quat.html">Nv::Blast::Serialization::PxQuat</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_px_quat_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxQuat.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxQuat, physx::PxQuat, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_quat.html">Nv::Blast::Serialization::PxQuat</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_px_quat_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_px_quat.html">Nv::Blast::Serialization::PxQuat</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxSerialization.capn.h:106</div></div>
<div class="ttc" id="_d_t_o_macros_8h_html"><div class="ttname"><a href="_d_t_o_macros_8h.html">DTOMacros.h</a></div></div>
diff --git a/docs/source_docs/files/_px_transform_d_t_o_8h_source.html b/docs/source_docs/files/_px_transform_d_t_o_8h_source.html
index d96f755..5e14717 100755
--- a/docs/source_docs/files/_px_transform_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_px_transform_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_px_transform_d_t_o_8h_source.html',''
<div class="title">PxTransformDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_px_transform_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxTransform, physx::PxTransform, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_transform.html">Nv::Blast::Serialization::PxTransform</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
+<a href="_px_transform_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;PxTransform.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_px_serialization_8capn_8h.html">generated/NvBlastExtPxSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;PxCooking.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxTransform, physx::PxTransform, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_transform.html">Nv::Blast::Serialization::PxTransform</a>)</div><div class="ttc" id="_nv_blast_ext_px_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_px_serialization_8capn_8h.html">NvBlastExtPxSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_px_transform_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_px_transform.html">Nv::Blast::Serialization::PxTransform</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtPxSerialization.capn.h:136</div></div>
<div class="ttc" id="_d_t_o_macros_8h_html"><div class="ttname"><a href="_d_t_o_macros_8h.html">DTOMacros.h</a></div></div>
diff --git a/docs/source_docs/files/_px_vec3_d_t_o_8h_source.html b/docs/source_docs/files/_px_vec3_d_t_o_8h_source.html
index 8a779e1..2a89c5e 100755
--- a/docs/source_docs/files/_px_vec3_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_px_vec3_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_px_vec3_d_t_o_8h_source.html','');});
<div class="title">PxVec3DTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_px_vec3_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_tk_serialization_8capn_8h.html">generated/NvBlastExtTkSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxVec3, physx::PxVec3, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_vec3.html">Nv::Blast::Serialization::PxVec3</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_px_vec3_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_tk_serialization_8capn_8h.html">generated/NvBlastExtTkSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;PxVec3.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(PxVec3, physx::PxVec3, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_px_vec3.html">Nv::Blast::Serialization::PxVec3</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_px_vec3_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_px_vec3.html">Nv::Blast::Serialization::PxVec3</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtTkSerialization.capn.h:59</div></div>
<div class="ttc" id="_nv_blast_ext_tk_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_tk_serialization_8capn_8h.html">NvBlastExtTkSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html"><div class="ttname"><a href="_d_t_o_macros_8h.html">DTOMacros.h</a></div></div>
diff --git a/docs/source_docs/files/_tk_asset_d_t_o_8h_source.html b/docs/source_docs/files/_tk_asset_d_t_o_8h_source.html
index b3cd309..85e3a2e 100755
--- a/docs/source_docs/files/_tk_asset_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_tk_asset_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_tk_asset_d_t_o_8h_source.html','');})
<div class="title">TkAssetDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_tk_asset_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_tk_serialization_8capn_8h.html">generated/NvBlastExtTkSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(TkAsset, <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset.html">Nv::Blast::Serialization::TkAsset</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_tk_asset_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_tk_serialization_8capn_8h.html">generated/NvBlastExtTkSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(TkAsset, <a class="code" href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset.html">Nv::Blast::Serialization::TkAsset</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset.html">Nv::Blast::Serialization::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtTkSerialization.capn.h:29</div></div>
<div class="ttc" id="class_nv_1_1_blast_1_1_tk_asset_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_tk_asset.html">Nv::Blast::TkAsset</a></div><div class="ttdef"><b>Definition:</b> NvBlastTkAsset.h:59</div></div>
<div class="ttc" id="_nv_blast_ext_tk_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_tk_serialization_8capn_8h.html">NvBlastExtTkSerialization.capn.h</a></div></div>
diff --git a/docs/source_docs/files/_tk_asset_joint_desc_d_t_o_8h_source.html b/docs/source_docs/files/_tk_asset_joint_desc_d_t_o_8h_source.html
index 478f11d..fa91dbb 100755
--- a/docs/source_docs/files/_tk_asset_joint_desc_d_t_o_8h_source.html
+++ b/docs/source_docs/files/_tk_asset_joint_desc_d_t_o_8h_source.html
@@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_tk_asset_joint_desc_d_t_o_8h_source.h
<div class="title">TkAssetJointDescDTO.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_tk_asset_joint_desc_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_tk_serialization_8capn_8h.html">generated/NvBlastExtTkSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(TkAssetJointDesc, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset_joint_desc.html">Nv::Blast::Serialization::TkAssetJointDesc</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
+<a href="_tk_asset_joint_desc_d_t_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED &quot;AS IS.&quot;. NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Copyright (c) 2020 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_d_t_o_macros_8h.html">DTOMacros.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_tk_asset_8h.html">NvBlastTkAsset.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_nv_blast_ext_tk_serialization_8capn_8h.html">generated/NvBlastExtTkSerialization.capn.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a>(TkAssetJointDesc, <a class="code" href="struct_nv_1_1_blast_1_1_tk_asset_joint_desc.html">Nv::Blast::TkAssetJointDesc</a>, <a class="code" href="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset_joint_desc.html">Nv::Blast::Serialization::TkAssetJointDesc</a>)</div><div class="ttc" id="_d_t_o_macros_8h_html_a01dbdd792fc1f215185e97b95c627db8"><div class="ttname"><a href="_d_t_o_macros_8h.html#a01dbdd792fc1f215185e97b95c627db8">DTO_CLASS</a></div><div class="ttdeci">#define DTO_CLASS(_NAME, _POCO, _SERIALIZER)</div><div class="ttdef"><b>Definition:</b> DTOMacros.h:31</div></div>
<div class="ttc" id="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset_joint_desc_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_serialization_1_1_tk_asset_joint_desc.html">Nv::Blast::Serialization::TkAssetJointDesc</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtTkSerialization.capn.h:44</div></div>
<div class="ttc" id="_nv_blast_ext_tk_serialization_8capn_8h_html"><div class="ttname"><a href="_nv_blast_ext_tk_serialization_8capn_8h.html">NvBlastExtTkSerialization.capn.h</a></div></div>
<div class="ttc" id="_d_t_o_macros_8h_html"><div class="ttname"><a href="_d_t_o_macros_8h.html">DTOMacros.h</a></div></div>
diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt
index 9868567..1f08d97 100755
--- a/samples/CMakeLists.txt
+++ b/samples/CMakeLists.txt
@@ -57,9 +57,9 @@ ENDIF()
IF (APPEND_CONFIG_NAME)
MESSAGE("Appending config to output names")
- SET(CMAKE_DEBUG_POSTFIX "DEBUG")
- SET(CMAKE_PROFILE_POSTFIX "PROFILE")
- SET(CMAKE_CHECKED_POSTFIX "CHECKED")
+ SET(CMAKE_DEBUG_POSTFIX "")
+ SET(CMAKE_PROFILE_POSTFIX "")
+ SET(CMAKE_CHECKED_POSTFIX "")
SET(CMAKE_RELEASE_POSTFIX "")
ENDIF()
diff --git a/samples/SampleBase/blast/BlastController.cpp b/samples/SampleBase/blast/BlastController.cpp
index 52536f5..c457092 100755
--- a/samples/SampleBase/blast/BlastController.cpp
+++ b/samples/SampleBase/blast/BlastController.cpp
@@ -129,7 +129,7 @@ void BlastController::onSampleStart()
m_replay = new BlastReplay();
m_taskManager =
- PxTaskManager::createTaskManager(NvBlastGetPxErrorCallback(), getPhysXController().getCPUDispatcher(), 0);
+ PxTaskManager::createTaskManager(NvBlastGetPxErrorCallback(), getPhysXController().getCPUDispatcher());
TkGroupDesc gdesc;
gdesc.workerCount = m_taskManager->getCpuDispatcher()->getWorkerCount();
diff --git a/samples/SampleBase/physx/PhysXController.cpp b/samples/SampleBase/physx/PhysXController.cpp
index cc9ade0..1f91d1d 100755
--- a/samples/SampleBase/physx/PhysXController.cpp
+++ b/samples/SampleBase/physx/PhysXController.cpp
@@ -52,7 +52,6 @@
#include "PxRigidDynamic.h"
#include "PxRigidStatic.h"
#include "PxMaterial.h"
-#include "PxFoundationVersion.h"
#include "PxMath.h"
#include <imgui.h>
@@ -110,7 +109,7 @@ void PhysXController::onTerminate()
void PhysXController::initPhysX()
{
- m_foundation = PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
+ m_foundation = PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
m_pvd = PxCreatePvd(*m_foundation);
@@ -139,11 +138,11 @@ void PhysXController::initPhysX()
sceneDesc.gravity = PxVec3(0.0f, -9.81f, 0.0f);
m_dispatcher = PxDefaultCpuDispatcherCreate(4);
sceneDesc.cpuDispatcher = m_dispatcher;
- sceneDesc.gpuDispatcher = m_cudaContext != NULL ? m_cudaContext->getGpuDispatcher() : NULL;
+ sceneDesc.cudaContextManager = m_cudaContext;
sceneDesc.filterShader = m_filterShader;
sceneDesc.flags |= PxSceneFlag::eENABLE_STABILIZATION;
sceneDesc.flags |= PxSceneFlag::eENABLE_PCM;
- if (sceneDesc.gpuDispatcher == nullptr)
+ if (sceneDesc.cudaContextManager == nullptr)
{
m_gpuPhysicsAvailable = false;
m_useGPUPhysics = false;
diff --git a/samples/SampleBase/renderer/RenderMaterial.cpp b/samples/SampleBase/renderer/RenderMaterial.cpp
index c49ee8e..baddcfb 100755
--- a/samples/SampleBase/renderer/RenderMaterial.cpp
+++ b/samples/SampleBase/renderer/RenderMaterial.cpp
@@ -28,6 +28,7 @@
#include "RenderMaterial.h"
#include <DirectXMath.h>
+#include "PxAssert.h"
#include "ShaderUtils.h"
#include "Renderer.h"
diff --git a/samples/SampleBase/renderer/Renderable.cpp b/samples/SampleBase/renderer/Renderable.cpp
index 40dd70e..903854d 100755
--- a/samples/SampleBase/renderer/Renderable.cpp
+++ b/samples/SampleBase/renderer/Renderable.cpp
@@ -27,6 +27,7 @@
#include "Renderable.h"
+#include "PxAssert.h"
#include "Renderer.h"
#include "RenderUtils.h"
diff --git a/samples/SampleBase/renderer/Renderer.cpp b/samples/SampleBase/renderer/Renderer.cpp
index 8b15aff..221ed3e 100755
--- a/samples/SampleBase/renderer/Renderer.cpp
+++ b/samples/SampleBase/renderer/Renderer.cpp
@@ -30,7 +30,7 @@
#include "RenderUtils.h"
#include "UIHelpers.h"
#include "SampleProfiler.h"
-
+#include "PxAssert.h"
#include "PxRenderBuffer.h"
#include <set>
diff --git a/samples/SampleBase/renderer/SkinnedRenderMesh.cpp b/samples/SampleBase/renderer/SkinnedRenderMesh.cpp
index db8d760..b8508e8 100755
--- a/samples/SampleBase/renderer/SkinnedRenderMesh.cpp
+++ b/samples/SampleBase/renderer/SkinnedRenderMesh.cpp
@@ -27,6 +27,7 @@
#include "SkinnedRenderMesh.h"
+#include "PxAssert.h"
#include "Renderer.h"
SkinnedRenderMesh::SkinnedRenderMesh(const std::vector<const SimpleMesh*>& meshes)
diff --git a/samples/compiler/cmake/SampleAssetViewer.cmake b/samples/compiler/cmake/SampleAssetViewer.cmake
index bfef3b2..7040b3f 100755
--- a/samples/compiler/cmake/SampleAssetViewer.cmake
+++ b/samples/compiler/cmake/SampleAssetViewer.cmake
@@ -47,6 +47,18 @@ SET_TARGET_PROPERTIES(SampleAssetViewer PROPERTIES
COMPILE_PDB_NAME_CHECKED "SampleAssetViewer${CMAKE_CHECKED_POSTFIX}"
COMPILE_PDB_NAME_PROFILE "SampleAssetViewer${CMAKE_PROFILE_POSTFIX}"
COMPILE_PDB_NAME_RELEASE "SampleAssetViewer${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
TARGET_COMPILE_OPTIONS(SampleAssetViewer PRIVATE /wd4005 /wd4244 ${SAMPLEASSETVIEWER_COMPILE_OPTIONS})
diff --git a/samples/compiler/cmake/SampleBase.cmake b/samples/compiler/cmake/SampleBase.cmake
index bd3109e..8ffa4b8 100755
--- a/samples/compiler/cmake/SampleBase.cmake
+++ b/samples/compiler/cmake/SampleBase.cmake
@@ -14,8 +14,8 @@ SET(SB_UTILS_SOURCE_DIR ${SB_SOURCE_DIR}/utils)
SET(SHARED_UTILS_SOURCE_DIR ${BLAST_ROOT_DIR}shared/utils)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(DXUT $ENV{PM_DXUT_VERSION} REQUIRED)
FIND_PACKAGE(DirectXTex $ENV{PM_DirectXTex_VERSION} REQUIRED)
FIND_PACKAGE(imgui $ENV{PM_imgui_VERSION} REQUIRED)
@@ -200,6 +200,18 @@ SET_TARGET_PROPERTIES(SampleBase PROPERTIES
COMPILE_PDB_NAME_CHECKED "SampleBase${CMAKE_CHECKED_POSTFIX}"
COMPILE_PDB_NAME_PROFILE "SampleBase${CMAKE_PROFILE_POSTFIX}"
COMPILE_PDB_NAME_RELEASE "SampleBase${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
TARGET_COMPILE_OPTIONS(SampleBase PRIVATE /wd4005 /wd4244)
@@ -207,10 +219,10 @@ TARGET_COMPILE_OPTIONS(SampleBase PRIVATE /wd4005 /wd4244)
# Do final direct sets after the target has been defined
TARGET_LINK_LIBRARIES(SampleBase
PUBLIC NvBlast NvBlastExtShaders NvBlastExtPhysX NvBlastExtExporter NvBlastExtAssetUtils NvBlastExtSerialization NvBlastExtTkSerialization NvBlastExtPxSerialization NvBlastTk d3dcompiler.lib d3d11.lib dxgi.lib comctl32.lib
- PUBLIC $<$<CONFIG:debug>:${PXPVDSDK_LIB_DEBUG}> $<$<CONFIG:debug>:${PXFOUNDATION_LIB_DEBUG}> $<$<CONFIG:debug>:${PXTASK_LIB_DEBUG}> $<$<CONFIG:debug>:${PSFASTXML_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3COMMON_LIB_DEBUG}>
- PUBLIC $<$<CONFIG:checked>:${PXPVDSDK_LIB_CHECKED}> $<$<CONFIG:checked>:${PXFOUNDATION_LIB_CHECKED}> $<$<CONFIG:checked>:${PXTASK_LIB_CHECKED}> $<$<CONFIG:checked>:${PSFASTXML_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3COMMON_LIB_CHECKED}>
- PUBLIC $<$<CONFIG:profile>:${PXPVDSDK_LIB_PROFILE}> $<$<CONFIG:profile>:${PXFOUNDATION_LIB_PROFILE}> $<$<CONFIG:profile>:${PXTASK_LIB_PROFILE}> $<$<CONFIG:profile>:${PSFASTXML_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3COMMON_LIB_PROFILE}>
- PUBLIC $<$<CONFIG:release>:${PXPVDSDK_LIB}> $<$<CONFIG:release>:${PXFOUNDATION_LIB}> $<$<CONFIG:release>:${PXTASK_LIB}> $<$<CONFIG:release>:${PSFASTXML_LIB}> $<$<CONFIG:release>:${PHYSX3COMMON_LIB}>
+ PUBLIC $<$<CONFIG:debug>:${PHYSXPVDSDK_STATIC_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXFOUNDATION_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXTASK_STATIC_LIB_DEBUG}> $<$<CONFIG:debug>:${PSFASTXML_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXCOMMON_LIB_DEBUG}>
+ PUBLIC $<$<CONFIG:checked>:${PHYSXPVDSDK_STATIC_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXFOUNDATION_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXTASK_STATIC_LIB_CHECKED}> $<$<CONFIG:checked>:${PSFASTXML_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXCOMMON_LIB_CHECKED}>
+ PUBLIC $<$<CONFIG:profile>:${PHYSXPVDSDK_STATIC_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXFOUNDATION_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXTASK_STATIC_LIB_PROFILE}> $<$<CONFIG:profile>:${PSFASTXML_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXCOMMON_LIB_PROFILE}>
+ PUBLIC $<$<CONFIG:release>:${PHYSXPVDSDK_STATIC_LIB}> $<$<CONFIG:release>:${PHYSXFOUNDATION_LIB}> $<$<CONFIG:release>:${PHYSXTASK_STATIC_LIB}> $<$<CONFIG:release>:${PSFASTXML_LIB}> $<$<CONFIG:release>:${PHYSXCOMMON_LIB}>
PUBLIC ${HBAO_PLUS_LIB} ${SHADOW_LIB_LIB} ${DXUT_LIBRARIES} ${DIRECTXTEX_LIBRARIES}
PUBLIC ${FBXSDK_LIBRARIES}
PUBLIC $<$<OR:$<CONFIG:debug>,$<CONFIG:checked>,$<CONFIG:profile>>:${NVTOOLSEXT_LIB}>
diff --git a/samples/compiler/cmake/windows/SampleAssetViewer-AT.cmake b/samples/compiler/cmake/windows/SampleAssetViewer-AT.cmake
index a1bdc62..b77b202 100755
--- a/samples/compiler/cmake/windows/SampleAssetViewer-AT.cmake
+++ b/samples/compiler/cmake/windows/SampleAssetViewer-AT.cmake
@@ -2,6 +2,6 @@
ADD_CUSTOM_COMMAND(TARGET SampleAssetViewer POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${PXSHAREDSDK_DLLS} ${PHYSXSDK_DLLS}
+ ${PHYSXSDK_DLLS}
${BL_EXE_OUTPUT_DIR}
)
diff --git a/samples/compiler/cmake/windows/SampleBase-AT.cmake b/samples/compiler/cmake/windows/SampleBase-AT.cmake
index b568350..46bcf2e 100755
--- a/samples/compiler/cmake/windows/SampleBase-AT.cmake
+++ b/samples/compiler/cmake/windows/SampleBase-AT.cmake
@@ -2,6 +2,9 @@
ADD_CUSTOM_COMMAND(TARGET SampleBase POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${PXSHAREDSDK_DLLS} ${PHYSXSDK_DLLS} ${SHADOW_LIB_DLL} ${HBAO_PLUS_DLL} ${D3DCOMPILER_DLL} ${NVTOOLSEXT_DLL}
- ${BL_EXE_OUTPUT_DIR}
+ ${PHYSXSDK_DLLS} ${NVTOOLSEXT_DLL} ${SHADOW_LIB_DLL} ${HBAO_PLUS_DLL} ${D3DCOMPILER_DLL}
+ $<$<CONFIG:debug>:${BL_EXE_OUTPUT_DIR}/debug>
+ $<$<CONFIG:checked>:${BL_EXE_OUTPUT_DIR}/checked>
+ $<$<CONFIG:profile>:${BL_EXE_OUTPUT_DIR}/profile>
+ $<$<CONFIG:release>:${BL_EXE_OUTPUT_DIR}/release>
)
diff --git a/sdk/CMakeLists.txt b/sdk/CMakeLists.txt
index 6d8cd5d..80b6ea3 100755
--- a/sdk/CMakeLists.txt
+++ b/sdk/CMakeLists.txt
@@ -53,9 +53,9 @@ ENDIF()
IF (APPEND_CONFIG_NAME)
MESSAGE("Appending config to output names")
- SET(CMAKE_DEBUG_POSTFIX "DEBUG")
- SET(CMAKE_PROFILE_POSTFIX "PROFILE")
- SET(CMAKE_CHECKED_POSTFIX "CHECKED")
+ SET(CMAKE_DEBUG_POSTFIX "")
+ SET(CMAKE_PROFILE_POSTFIX "")
+ SET(CMAKE_CHECKED_POSTFIX "")
SET(CMAKE_RELEASE_POSTFIX "")
ENDIF()
diff --git a/sdk/compiler/cmake/NvBlast.cmake b/sdk/compiler/cmake/NvBlast.cmake
index db10d8f..5353fa4 100755
--- a/sdk/compiler/cmake/NvBlast.cmake
+++ b/sdk/compiler/cmake/NvBlast.cmake
@@ -90,4 +90,16 @@ SET_TARGET_PROPERTIES(NvBlast PROPERTIES
PDB_NAME_CHECKED "NvBlast${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlast${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlast${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
diff --git a/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake b/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake
index f69d40d..31d847b 100755
--- a/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake
+++ b/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake
@@ -84,6 +84,18 @@ SET_TARGET_PROPERTIES(NvBlastExtAssetUtils PROPERTIES
PDB_NAME_CHECKED "NvBlastExtAssetUtils${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtAssetUtils${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtAssetUtils${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastExtAuthoring.cmake b/sdk/compiler/cmake/NvBlastExtAuthoring.cmake
index b96f9d2..fec74b8 100755
--- a/sdk/compiler/cmake/NvBlastExtAuthoring.cmake
+++ b/sdk/compiler/cmake/NvBlastExtAuthoring.cmake
@@ -12,7 +12,8 @@ SET(AUTHORING_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/authoring/source)
SET(COMMON_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
SET(AUTHORING_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/authoring/include)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(BoostMultiprecision $ENV{PM_BoostMultiprecision_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
@@ -126,6 +127,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtAuthoring
PRIVATE ${PROJECT_SOURCE_DIR}/extensions/RT/source
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
PRIVATE ${BOOSTMULTIPRECISION_INCLUDE_DIRS}
@@ -147,6 +149,18 @@ SET_TARGET_PROPERTIES(NvBlastExtAuthoring PROPERTIES
PDB_NAME_CHECKED "NvBlastExtAuthoring${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtAuthoring${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtAuthoring${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastExtExporter.cmake b/sdk/compiler/cmake/NvBlastExtExporter.cmake
index 69f08cb..8fc10e5 100755
--- a/sdk/compiler/cmake/NvBlastExtExporter.cmake
+++ b/sdk/compiler/cmake/NvBlastExtExporter.cmake
@@ -11,7 +11,8 @@ SET(EXPORTER_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/exporter/include)
SET(EXT_AUTHORING_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/extensions/authoring/include)
SET(TK_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/toolkit/include)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(tinyObjLoader $ENV{PM_tinyObjLoader_VERSION} REQUIRED)
FIND_PACKAGE(FBXSDK $ENV{PM_FBXSDK_VERSION} REQUIRED)
@@ -72,6 +73,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtExporter
PRIVATE ${EXPORTER_EXT_SOURCE_DIR}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
PRIVATE ${TINYOBJLOADER_INCLUDE_DIRS}
PRIVATE ${FBXSDK_INCLUDE_DIRS}
@@ -90,6 +92,18 @@ SET_TARGET_PROPERTIES(NvBlastExtExporter PROPERTIES
PDB_NAME_CHECKED "NvBlastExtExporter${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtExporter${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtExporter${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastExtImport.cmake b/sdk/compiler/cmake/NvBlastExtImport.cmake
index f694d98..32ebf80 100755
--- a/sdk/compiler/cmake/NvBlastExtImport.cmake
+++ b/sdk/compiler/cmake/NvBlastExtImport.cmake
@@ -13,8 +13,8 @@ SET(PHYSX_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/include)
SET(APEX_MODULES_DIR ${PROJECT_SOURCE_DIR}/extensions/import/apexmodules)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtImport.cmake)
@@ -77,7 +77,8 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtImport
PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
-
+ PUBLIC ${BLAST_ROOT_DIR}/shared/filebuf/include
+
PRIVATE ${APEX_MODULES_DIR}/modules/common/include/autogen
PRIVATE ${APEX_MODULES_DIR}/modules/common/include
PRIVATE ${APEX_MODULES_DIR}/modules/common_legacy/include/autogen
@@ -112,15 +113,21 @@ SET_TARGET_PROPERTIES(NvBlastExtImport PROPERTIES
PDB_NAME_CHECKED "NvBlastExtImport${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtImport${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtImport${CMAKE_RELEASE_POSTFIX}"
-)
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release")
# Do final direct sets after the target has been defined
TARGET_LINK_LIBRARIES(NvBlastExtImport
PRIVATE NvBlast NvBlastTk NvBlastExtAuthoring
PUBLIC ${BLASTEXT_PLATFORM_LINKED_LIBS}
- PUBLIC $<$<CONFIG:debug>:${PSFASTXML_LIB_DEBUG}>
- PUBLIC $<$<CONFIG:checked>:${PSFASTXML_LIB_CHECKED}>
- PUBLIC $<$<CONFIG:profile>:${PSFASTXML_LIB_PROFILE}>
- PUBLIC $<$<CONFIG:release>:${PSFASTXML_LIB}>
-
)
diff --git a/sdk/compiler/cmake/NvBlastExtPhysX.cmake b/sdk/compiler/cmake/NvBlastExtPhysX.cmake
index 00ff02e..0f2d3bb 100755
--- a/sdk/compiler/cmake/NvBlastExtPhysX.cmake
+++ b/sdk/compiler/cmake/NvBlastExtPhysX.cmake
@@ -10,8 +10,8 @@ SET(PHYSX_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/source)
SET(COMMON_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include)
SET(PHYSX_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/include)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtPhysX.cmake)
@@ -103,6 +103,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtPhysX
PUBLIC ${PHYSXSDK_INCLUDE_DIRS}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PUBLIC ${BLAST_ROOT_DIR}/shared/filebuf/include
)
TARGET_COMPILE_DEFINITIONS(NvBlastExtPhysX
@@ -119,15 +120,27 @@ SET_TARGET_PROPERTIES(NvBlastExtPhysX PROPERTIES
PDB_NAME_CHECKED "NvBlastExtPhysX${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtPhysX${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtPhysX${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
TARGET_LINK_LIBRARIES(NvBlastExtPhysX
PUBLIC NvBlastTk NvBlastExtShaders NvBlastExtStress
- PUBLIC $<$<CONFIG:debug>:${PHYSX3_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3COOKING_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3EXTENSIONS_LIB_DEBUG}> $<$<CONFIG:debug>:${PXFOUNDATION_LIB_DEBUG}>
- PUBLIC $<$<CONFIG:checked>:${PHYSX3_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3COOKING_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3EXTENSIONS_LIB_CHECKED}> $<$<CONFIG:checked>:${PXFOUNDATION_LIB_CHECKED}>
- PUBLIC $<$<CONFIG:profile>:${PHYSX3_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3COOKING_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3EXTENSIONS_LIB_PROFILE}> $<$<CONFIG:profile>:${PXFOUNDATION_LIB_PROFILE}>
- PUBLIC $<$<CONFIG:release>:${PHYSX3_LIB}> $<$<CONFIG:release>:${PHYSX3COOKING_LIB}> $<$<CONFIG:release>:${PHYSX3EXTENSIONS_LIB}> $<$<CONFIG:release>:${PXFOUNDATION_LIB}>
+ PUBLIC $<$<CONFIG:debug>:${PHYSX_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXCOOKING_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXEXTENSIONS_STATIC_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXFOUNDATION_LIB_DEBUG}>
+ PUBLIC $<$<CONFIG:checked>:${PHYSX_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXCOOKING_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXEXTENSIONS_STATIC_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXFOUNDATION_LIB_CHECKED}>
+ PUBLIC $<$<CONFIG:profile>:${PHYSX_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXCOOKING_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXEXTENSIONS_STATIC_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXFOUNDATION_LIB_PROFILE}>
+ PUBLIC $<$<CONFIG:release>:${PHYSX_LIB}> $<$<CONFIG:release>:${PHYSXCOOKING_LIB}> $<$<CONFIG:release>:${PHYSXEXTENSIONS_STATIC_LIB}> $<$<CONFIG:release>:${PHYSXFOUNDATION_LIB}>
PUBLIC ${BLASTEXT_PLATFORM_LINKED_LIBS}
)
diff --git a/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake b/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake
index a781d87..e2bd2a1 100755
--- a/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake
+++ b/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake
@@ -18,8 +18,8 @@ SET(SOLVER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/lowlevel/source)
SET(SERIAL_GENERATED_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/generated)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(CapnProtoSDK $ENV{PM_CapnProto_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
@@ -172,7 +172,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtPxSerialization
PRIVATE ${COMMON_SOURCE_DIR}
- PUBLIC ${PHYSXSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
)
@@ -186,20 +186,32 @@ TARGET_COMPILE_OPTIONS(NvBlastExtPxSerialization
PRIVATE ${BLASTEXTPXSERIALIZATION_COMPILE_OPTIONS}
)
-SET_TARGET_PROPERTIES(NvBlastExtPxSerialization PROPERTIES
+SET_TARGET_PROPERTIES(NvBlastExtPxSerialization PROPERTIES
PDB_NAME_DEBUG "NvBlastExtPxSerialization${CMAKE_DEBUG_POSTFIX}"
PDB_NAME_CHECKED "NvBlastExtPxSerialization${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtPxSerialization${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtPxSerialization${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
TARGET_LINK_LIBRARIES(NvBlastExtPxSerialization
PRIVATE NvBlast NvBlastGlobals NvBlastTk NvBlastExtPhysX ${CAPNPROTOSDK_LIBRARIES}
- PUBLIC $<$<CONFIG:debug>:${PHYSX3_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3COOKING_LIB_DEBUG}>
- PUBLIC $<$<CONFIG:checked>:${PHYSX3_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3COOKING_LIB_CHECKED}>
- PUBLIC $<$<CONFIG:profile>:${PHYSX3_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3COOKING_LIB_PROFILE}>
- PUBLIC $<$<CONFIG:release>:${PHYSX3_LIB}> $<$<CONFIG:release>:${PHYSX3COOKING_LIB}>
+ PUBLIC $<$<CONFIG:debug>:${PHYSX_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXCOOKING_LIB_DEBUG}>
+ PUBLIC $<$<CONFIG:checked>:${PHYSX_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXCOOKING_LIB_CHECKED}>
+ PUBLIC $<$<CONFIG:profile>:${PHYSX_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXCOOKING_LIB_PROFILE}>
+ PUBLIC $<$<CONFIG:release>:${PHYSX_LIB}> $<$<CONFIG:release>:${PHYSXCOOKING_LIB}>
)
#Hack for now to force these to build serialially to fix fighting over writing the generated code
diff --git a/sdk/compiler/cmake/NvBlastExtSerialization.cmake b/sdk/compiler/cmake/NvBlastExtSerialization.cmake
index a2679bc..0a22aef 100755
--- a/sdk/compiler/cmake/NvBlastExtSerialization.cmake
+++ b/sdk/compiler/cmake/NvBlastExtSerialization.cmake
@@ -13,7 +13,8 @@ SET(SOLVER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/lowlevel/source)
SET(SERIAL_GENERATED_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/generated)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(CapnProtoSDK $ENV{PM_CapnProto_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
@@ -129,6 +130,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtSerialization
PRIVATE ${COMMON_SOURCE_DIR}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
)
TARGET_COMPILE_DEFINITIONS(NvBlastExtSerialization
@@ -146,6 +148,18 @@ SET_TARGET_PROPERTIES(NvBlastExtSerialization PROPERTIES
PDB_NAME_CHECKED "NvBlastExtSerialization${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtSerialization${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtSerialization${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastExtShaders.cmake b/sdk/compiler/cmake/NvBlastExtShaders.cmake
index 91d2d9b..cde11ac 100755
--- a/sdk/compiler/cmake/NvBlastExtShaders.cmake
+++ b/sdk/compiler/cmake/NvBlastExtShaders.cmake
@@ -53,6 +53,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtShaders
PRIVATE ${PROJECT_SOURCE_DIR}/common
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
)
TARGET_COMPILE_DEFINITIONS(NvBlastExtShaders
@@ -69,6 +70,18 @@ SET_TARGET_PROPERTIES(NvBlastExtShaders PROPERTIES
PDB_NAME_CHECKED "NvBlastExtShaders${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtShaders${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtShaders${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastExtStress.cmake b/sdk/compiler/cmake/NvBlastExtStress.cmake
index f5fcd99..b1b641f 100755
--- a/sdk/compiler/cmake/NvBlastExtStress.cmake
+++ b/sdk/compiler/cmake/NvBlastExtStress.cmake
@@ -10,7 +10,8 @@ SET(STRESS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/stress/source)
SET(EXT_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
SET(EXT_COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtStress.cmake OPTIONAL)
@@ -55,6 +56,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtStress
PRIVATE ${COMMON_SOURCE_DIR}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
)
SET(BLASTEXTSTRESS_COMPILE_DEFS
@@ -82,6 +84,18 @@ SET_TARGET_PROPERTIES(NvBlastExtStress PROPERTIES
PDB_NAME_CHECKED "NvBlastExtStress${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtStress${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtStress${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake b/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake
index 38acb6f..5bc066f 100755
--- a/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake
+++ b/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake
@@ -16,7 +16,8 @@ SET(SOLVER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/lowlevel/source)
SET(SERIAL_GENERATED_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/generated)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(CapnProtoSDK $ENV{PM_CapnProto_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
@@ -144,6 +145,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastExtTkSerialization
PRIVATE ${COMMON_SOURCE_DIR}
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
)
TARGET_COMPILE_DEFINITIONS(NvBlastExtTkSerialization
@@ -161,6 +163,18 @@ SET_TARGET_PROPERTIES(NvBlastExtTkSerialization PROPERTIES
PDB_NAME_CHECKED "NvBlastExtTkSerialization${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastExtTkSerialization${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastExtTkSerialization${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastGlobals.cmake b/sdk/compiler/cmake/NvBlastGlobals.cmake
index 92dfc27..d980739 100755
--- a/sdk/compiler/cmake/NvBlastGlobals.cmake
+++ b/sdk/compiler/cmake/NvBlastGlobals.cmake
@@ -57,6 +57,18 @@ SET_TARGET_PROPERTIES(NvBlastGlobals PROPERTIES
PDB_NAME_CHECKED "NvBlastGlobals${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastGlobals${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastGlobals${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/NvBlastTk.cmake b/sdk/compiler/cmake/NvBlastTk.cmake
index 2eb6a32..c317d78 100755
--- a/sdk/compiler/cmake/NvBlastTk.cmake
+++ b/sdk/compiler/cmake/NvBlastTk.cmake
@@ -5,7 +5,8 @@
SET(TOOLKIT_DIR ${PROJECT_SOURCE_DIR}/toolkit)
SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastTk.cmake)
@@ -92,6 +93,7 @@ TARGET_INCLUDE_DIRECTORIES(NvBlastTk
PUBLIC ${PROJECT_SOURCE_DIR}/toolkit/include
PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
)
TARGET_COMPILE_DEFINITIONS(NvBlastTk
@@ -107,6 +109,18 @@ SET_TARGET_PROPERTIES(NvBlastTk PROPERTIES
PDB_NAME_CHECKED "NvBlastTk${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "NvBlastTk${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "NvBlastTk${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
diff --git a/sdk/compiler/cmake/linux/CMakeLists.txt b/sdk/compiler/cmake/linux/CMakeLists.txt
index b3560aa..1569419 100755
--- a/sdk/compiler/cmake/linux/CMakeLists.txt
+++ b/sdk/compiler/cmake/linux/CMakeLists.txt
@@ -1,6 +1,6 @@
#Platform specific compile flags and project includes
-SET(CMAKE_CXX_FLAGS "-Wextra -Werror -fdiagnostics-show-option -fno-rtti -fno-exceptions -m64 -msse2 -mfpmath=sse -fPIC -ffast-math -fno-exceptions -fno-rtti -Wno-invalid-offsetof -Wno-unknown-pragmas -std=c++0x -Wreorder")
+SET(CMAKE_CXX_FLAGS "-Wextra -Werror -fdiagnostics-show-option -fno-rtti -fno-exceptions -m64 -msse2 -mfpmath=sse -fPIC -ffast-math -fno-exceptions -fno-rtti -Wno-invalid-offsetof -Wno-unknown-pragmas -Wno-uninitialized -std=c++14 -Wreorder")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -gdwarf-2")
SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g3 -gdwarf-2 -fno-strict-aliasing")
@@ -22,6 +22,7 @@ INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtShaders.cmake)
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtStress.cmake)
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtPhysX.cmake)
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtAuthoring.cmake)
+# INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtRT.cmake)
IF(${UE4_LINUX_CROSSCOMPILE})
#This uses the Windows CapnProto exe so it works
diff --git a/sdk/compiler/cmake/modules/FindPhysXSDK.cmake b/sdk/compiler/cmake/modules/FindPhysXSDK.cmake
index 7e1f0a9..700d12d 100755
--- a/sdk/compiler/cmake/modules/FindPhysXSDK.cmake
+++ b/sdk/compiler/cmake/modules/FindPhysXSDK.cmake
@@ -5,364 +5,481 @@
include(FindPackageHandleStandardArgs)
+
MESSAGE("Looking for PhysXSDK ${PhysXSDK_FIND_VERSION} Cached path: ${PHYSXSDK_PATH}")
-find_path(PHYSXSDK_PATH Include/PxActor.h
+find_path(PHYSXSDK_PATH include/PxActor.h
PATHS
- $ENV{PM_PhysX_PATH}
- $ENV{PM_PhysX_PATH}/PhysX_3.4
- ${GW_DEPS_ROOT}/$ENV{PM_PhysX_NAME}/${PhysXSDK_FIND_VERSION}
- ${GW_DEPS_ROOT}/PhysX/${PhysXSDK_FIND_VERSION}
-)
+ $ENV{PM_physxsdk_PATH}
+)
+
+# Is the config defined in the names of binaries or path
+option(PHYSX_DEPS_WITH_CONFIG_NAME "Assume that Physx dependencies contain config in their names" OFF)
+
+if(PHYSX_DEPS_WITH_CONFIG_NAME)
+ SET(DEBUG_CONFIG_SUFFIX "DEBUG")
+ SET(PROFILE_CONFIG_SUFFIX "PROFILE")
+ SET(CHECKED_CONFIG_SUFFIX "CHECKED")
+ SET(RELEASE_CONFIG_SUFFIX "")
+else()
+ SET(DEBUG_CONFIG_PATH_SUFFIX "debug")
+ SET(PROFILE_CONFIG_PATH_SUFFIX "profile")
+ SET(CHECKED_CONFIG_PATH_SUFFIX "checked")
+ SET(RELEASE_CONFIG_PATH_SUFFIX "release")
+endif()
if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
# If the project pulling in this dependency needs the static crt, then append that to the path.
if (STATIC_WINCRT)
- SET(PHYSX_CRT_SUFFIX "-staticcrt")
+ SET(PHYSX_CRT_SUFFIX ".mt")
else()
- SET(PHYSX_CRT_SUFFIX "")
+ SET(PHYSX_CRT_SUFFIX ".md")
endif()
if (CMAKE_CL_64)
- SET(PHYSX_ARCH_FOLDER "win64")
- SET(PHYSX_ARCH_FILE "_x64")
+ SET(PHYSX_ARCH_FILE "_64")
else()
- SET(PHYSX_ARCH_FOLDER "win32")
SET(PHYSX_ARCH_FILE "_x86")
endif()
+ SET(PHYSX_ARCH_FOLDER "win.x86_64.")
+
# What compiler version do we want?
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
- SET(VS_STR "VS2013")
- elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10.0.0)
- SET(VS_STR "VS2015")
- elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.10.0.0)
- SET(VS_STR "VS2017")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.10.0.0)
+ SET(VS_STR "vc141")
else()
- MESSAGE(FATAL_ERROR "Failed to find compatible PxSharedSDK - Only supporting VS2013 and VS2015")
+ MESSAGE(FATAL_ERROR "Failed to find compatible PhysXSDK - Only supporting VS2017 and higher")
endif()
- SET(LIB_PATH ${PHYSXSDK_PATH}/lib/${VS_STR}${PHYSX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX} ${PHYSXSDK_PATH}/lib/${VS_STR}${PHYSX_ARCH_FOLDER} ${PHYSXSDK_PATH}/../Lib/${PHYSX_ARCH_FOLDER}/${VS_STR} ${PHYSXSDK_PATH}/../Lib)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+ SET(LIB_PATH ${PHYSXSDK_PATH}/bin/${PHYSX_ARCH_FOLDER}${VS_STR}${PHYSX_CRT_SUFFIX})
+ # Set library suffix as .lib only since otherwise there would be ambiguity between .dll and .lib files.
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
- SET(LIB_PATH ${PHYSXSDK_PATH}/lib/vc14ps4-cmake ${PHYSXSDK_PATH}/../Lib)
+ SET(LIB_PATH ${PHYSXSDK_PATH}/bin/vc14ps4-cmake)
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
- SET(LIB_PATH ${PHYSXSDK_PATH}/lib/vc14xboxone-cmake ${PHYSXSDK_PATH}/../lib)
+ SET(LIB_PATH ${PHYSXSDK_PATH}/bin/vc14xboxone-cmake)
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
SET(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
- SET(LIB_PATH ${PHYSXSDK_PATH}/lib/linux64-cmake ${PHYSXSDK_PATH}/../Lib)
+ SET(LIB_PATH ${PHYSXSDK_PATH}/bin/linux.clang)
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
- SET(PHYSX_ARCH_FILE "_x64")
+ SET(PHYSX_ARCH_FILE "_64")
endif()
# Now find all of the PhysX libs in the lib directory
-find_library(PHYSX3_LIB
- NAMES PhysX3 PhysX3${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3EXTENSIONS_LIB
- NAMES PhysX3Extensions PhysX3Extensions${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3CHARACTERKINEMATIC_LIB
- NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3COMMON_LIB
- NAMES PhysX3Common${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3COOKING_LIB
- NAMES PhysX3Cooking${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVEL_LIB
- NAMES LowLevel LowLevel${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELAABB_LIB
- NAMES LowLevelAABB LowLevelAABB${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELCLOTH_LIB
- NAMES LowLevelCloth LowLevelCloth${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELDYNAMICS_LIB
- NAMES LowLevelDynamics LowLevelDynamics${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELPARTICLES_LIB
- NAMES LowLevelParticles LowLevelParticles${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(SCENEQUERY_LIB
- NAMES SceneQuery SceneQuery${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(SIMULATIONCONTROLLER_LIB
- NAMES SimulationController SimulationController${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
+if (NOT TARGET_BUILD_PLATFORM STREQUAL "linux")
+ find_library(PHYSX_LIB
+ NAMES PhysX${RELEASE_CONFIG_SUFFIX} PhysX${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB
+ NAMES PhysXCommon${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB
+ NAMES PhysXCooking${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB
+ NAMES PhysXFoundation${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSX_LIB_DEBUG
+ NAMES PhysX${DEBUG_CONFIG_SUFFIX} PhysX${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB_DEBUG
+ NAMES PhysXCommon${DEBUG_CONFIG_SUFFIX} PhysXCommon${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB_DEBUG
+ NAMES PhysXCooking${DEBUG_CONFIG_SUFFIX} PhysXCooking${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_DEBUG
+ NAMES PhysXFoundation${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
-find_library(PHYSX3_LIB_DEBUG
- NAMES PhysX3DEBUG PhysX3DEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3EXTENSIONS_LIB_DEBUG
- NAMES PhysX3ExtensionsDEBUG PhysX3ExtensionsDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3CHARACTERKINEMATIC_LIB_DEBUG
- NAMES PhysX3CharacterKinematicDEBUG PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3COMMON_LIB_DEBUG
- NAMES PhysX3CommonDEBUG PhysX3CommonDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3COOKING_LIB_DEBUG
- NAMES PhysX3CookingDEBUG PhysX3CookingDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVEL_LIB_DEBUG
- NAMES LowLevelDEBUG LowLevelDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELAABB_LIB_DEBUG
- NAMES LowLevelAABBDEBUG LowLevelAABBDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELCLOTH_LIB_DEBUG
- NAMES LowLevelClothDEBUG LowLevelClothDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELDYNAMICS_LIB_DEBUG
- NAMES LowLevelDynamicsDEBUG LowLevelDynamicsDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELPARTICLES_LIB_DEBUG
- NAMES LowLevelParticlesDEBUG LowLevelParticlesDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(SCENEQUERY_LIB_DEBUG
- NAMES SceneQueryDEBUG SceneQueryDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(SIMULATIONCONTROLLER_LIB_DEBUG
- NAMES SimulationControllerDEBUG SimulationControllerDEBUG${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
+ find_library(PHYSX_LIB_CHECKED
+ NAMES PhysX${CHECKED_CONFIG_SUFFIX} PhysX${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB_CHECKED
+ NAMES PhysXCommon${CHECKED_CONFIG_SUFFIX} PhysXCommon${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB_CHECKED
+ NAMES PhysXCooking${CHECKED_CONFIG_SUFFIX} PhysXCooking${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_CHECKED
+ NAMES PhysXFoundation${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
-find_library(PHYSX3_LIB_CHECKED
- NAMES PhysX3CHECKED PhysX3CHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3EXTENSIONS_LIB_CHECKED
- NAMES PhysX3ExtensionsCHECKED PhysX3ExtensionsCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3CHARACTERKINEMATIC_LIB_CHECKED
- NAMES PhysX3CharacterKinematicCHECKED PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3COMMON_LIB_CHECKED
- NAMES PhysX3CommonCHECKED PhysX3CommonCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PHYSX3COOKING_LIB_CHECKED
- NAMES PhysX3CookingCHECKED PhysX3CookingCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVEL_LIB_CHECKED
- NAMES LowLevelCHECKED LowLevelCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELAABB_LIB_CHECKED
- NAMES LowLevelAABBCHECKED LowLevelAABBCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELCLOTH_LIB_CHECKED
- NAMES LowLevelClothCHECKED LowLevelClothCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELDYNAMICS_LIB_CHECKED
- NAMES LowLevelDynamicsCHECKED LowLevelDynamicsCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(LOWLEVELPARTICLES_LIB_CHECKED
- NAMES LowLevelParticlesCHECKED LowLevelParticlesCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(SCENEQUERY_LIB_CHECKED
- NAMES SceneQueryCHECKED SceneQueryCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(SIMULATIONCONTROLLER_LIB_CHECKED
- NAMES SimulationControllerCHECKED SimulationControllerCHECKED${PHYSX_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
+ find_library(PHYSX_LIB_PROFILE
+ NAMES PhysX${PROFILE_CONFIG_SUFFIX} PhysX${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB_PROFILE
+ NAMES PhysXCommon${PROFILE_CONFIG_SUFFIX} PhysXCommon${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB_PROFILE
+ NAMES PhysXCooking${PROFILE_CONFIG_SUFFIX} PhysXCooking${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_PROFILE
+ NAMES PhysXFoundation${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
-find_library(PHYSX3_LIB_PROFILE
- NAMES PhysX3PROFILE PhysX3PROFILE${PHYSX_ARCH_FILE}
+ find_library(PHYSXTASK_STATIC_LIB
+ NAMES PhysXTask_static${RELEASE_CONFIG_SUFFIX} PhysXTask_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXTASK_STATIC_LIB_DEBUG
+ NAMES PhysXTask_static${DEBUG_CONFIG_SUFFIX} PhysXTask_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXTASK_STATIC_LIB_CHECKED
+ NAMES PhysXTask_static${CHECKED_CONFIG_SUFFIX} PhysXTask_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXTASK_STATIC_LIB_PROFILE
+ NAMES PhysXTask_static${PROFILE_CONFIG_SUFFIX} PhysXTask_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+else()
+ find_library(PHYSX_LIB
+ NAMES PhysX_static${RELEASE_CONFIG_SUFFIX} PhysX_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB
+ NAMES PhysXCommon_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB
+ NAMES PhysXCooking_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB
+ NAMES PhysXFoundation_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+
+ find_library(PHYSX_LIB_DEBUG
+ NAMES PhysX_static${DEBUG_CONFIG_SUFFIX} PhysX_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB_DEBUG
+ NAMES PhysXCommon_static${DEBUG_CONFIG_SUFFIX} PhysXCommon_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB_DEBUG
+ NAMES PhysXCooking_static${DEBUG_CONFIG_SUFFIX} PhysXCooking_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_DEBUG
+ NAMES PhysXFoundation_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+
+ find_library(PHYSX_LIB_CHECKED
+ NAMES PhysX_static${CHECKED_CONFIG_SUFFIX} PhysX_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB_CHECKED
+ NAMES PhysXCommon_static${CHECKED_CONFIG_SUFFIX} PhysXCommon_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB_CHECKED
+ NAMES PhysXCooking_static${CHECKED_CONFIG_SUFFIX} PhysXCooking_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_CHECKED
+ NAMES PhysXFoundation_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+
+ find_library(PHYSX_LIB_PROFILE
+ NAMES PhysX_static${PROFILE_CONFIG_SUFFIX} PhysX_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_LIB_PROFILE
+ NAMES PhysXCommon_static${PROFILE_CONFIG_SUFFIX} PhysXCommon_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOOKING_LIB_PROFILE
+ NAMES PhysXCooking_static${PROFILE_CONFIG_SUFFIX} PhysXCooking_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_PROFILE
+ NAMES PhysXFoundation_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+endif()
+
+find_library(PHYSXEXTENSIONS_STATIC_LIB
+ NAMES PhysXExtensions_static${RELEASE_CONFIG_SUFFIX} PhysXExtensions_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
-find_library(PHYSX3EXTENSIONS_LIB_PROFILE
- NAMES PhysX3ExtensionsPROFILE PhysX3ExtensionsPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB
+ NAMES PhysXCharacterKinematic_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
-find_library(PHYSX3CHARACTERKINEMATIC_LIB_PROFILE
- NAMES PhysX3CharacterKinematicPROFILE PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXPVDSDK_STATIC_LIB
+ NAMES PhysXPvdSDK_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
-find_library(PHYSX3COMMON_LIB_PROFILE
- NAMES PhysX3CommonPROFILE PhysX3CommonPROFILE${PHYSX_ARCH_FILE}
+
+find_library(PHYSXEXTENSIONS_STATIC_LIB_DEBUG
+ NAMES PhysXExtensions_static${DEBUG_CONFIG_SUFFIX} PhysXExtensions_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
-find_library(PHYSX3COOKING_LIB_PROFILE
- NAMES PhysX3CookingPROFILE PhysX3CookingPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB_DEBUG
+ NAMES PhysXCharacterKinematic_static${DEBUG_CONFIG_SUFFIX} PhysXCharacterKinematic_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
-find_library(LOWLEVEL_LIB_PROFILE
- NAMES LowLevelPROFILE LowLevelPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXPVDSDK_STATIC_LIB_DEBUG
+ NAMES PhysXPvdSDK_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
-find_library(LOWLEVELAABB_LIB_PROFILE
- NAMES LowLevelAABBPROFILE LowLevelAABBPROFILE${PHYSX_ARCH_FILE}
+
+find_library(PHYSXEXTENSIONS_STATIC_LIB_CHECKED
+ NAMES PhysXExtensions_static${CHECKED_CONFIG_SUFFIX} PhysXExtensions_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
-find_library(LOWLEVELCLOTH_LIB_PROFILE
- NAMES LowLevelClothPROFILE LowLevelClothPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB_CHECKED
+ NAMES PhysXCharacterKinematic_static${CHECKED_CONFIG_SUFFIX} PhysXCharacterKinematic_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
-find_library(LOWLEVELDYNAMICS_LIB_PROFILE
- NAMES LowLevelDynamicsPROFILE LowLevelDynamicsPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXPVDSDK_STATIC_LIB_CHECKED
+ NAMES PhysXPvdSDK_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
-find_library(LOWLEVELPARTICLES_LIB_PROFILE
- NAMES LowLevelParticlesPROFILE LowLevelParticlesPROFILE${PHYSX_ARCH_FILE}
+
+find_library(PHYSXEXTENSIONS_STATIC_LIB_PROFILE
+ NAMES PhysXExtensions_static${PROFILE_CONFIG_SUFFIX} PhysXExtensions_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
-find_library(SCENEQUERY_LIB_PROFILE
- NAMES SceneQueryPROFILE SceneQueryPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB_PROFILE
+ NAMES PhysXCharacterKinematic_static${PROFILE_CONFIG_SUFFIX} PhysXCharacterKinematic_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
-find_library(SIMULATIONCONTROLLER_LIB_PROFILE
- NAMES SimulationControllerPROFILE SimulationControllerPROFILE${PHYSX_ARCH_FILE}
+find_library(PHYSXPVDSDK_STATIC_LIB_PROFILE
+ NAMES PhysXPvdSDK_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
+
if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
- find_library(PHYSX3GPU_LIB
- NAMES PhysX3Gpu${PHYSX_ARCH_FILE}
+ find_library(PHYSXGPU_LIB
+ NAMES PhysXGpu${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3GPU_LIB_DEBUG
- NAMES PhysX3GpuDEBUG${PHYSX_ARCH_FILE}
+ find_library(PHYSXGPU_LIB_DEBUG
+ NAMES PhysXGpu${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${LIB_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
+ SET(DLL_PATH ${PHYSXSDK_PATH}/bin/${PHYSX_ARCH_FOLDER}${VS_STR}${PHYSX_CRT_SUFFIX})
+ # Set library suffix as .dll only since otherwise there would be ambiguity between .dll and .lib files.
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
- SET(DLL_PATH ${PHYSXSDK_PATH}/bin/${VS_STR}${PHYSX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX} ${PHYSXSDK_PATH}/bin/${VS_STR}${PHYSX_ARCH_FOLDER} ${PHYSXSDK_PATH}/../Bin/${PHYSX_ARCH_FOLDER}/${VS_STR} ${PHYSXSDK_PATH}/../Bin)
-
- find_library(PHYSX3_DLL
- NAMES PhysX3${PHYSX_ARCH_FILE}
+ find_library(PHYSX_DLL
+ NAMES PhysX${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COMMON_DLL
- NAMES PhysX3Common${PHYSX_ARCH_FILE}
+ find_library(PHYSXCOMMON_DLL
+ NAMES PhysXCommon${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_DLL
- NAMES PhysX3Cooking${PHYSX_ARCH_FILE}
+ find_library(PHYSXCOOKING_DLL
+ NAMES PhysXCooking${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3GPU_DLL
- NAMES PhysX3Gpu${PHYSX_ARCH_FILE}
+ find_library(PHYSXFOUNDATION_DLL
+ NAMES PhysXFoundation${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXGPU_DLL
+ NAMES PhysXGpu${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
-
- find_library(PHYSX3_DLL_DEBUG
- NAMES PhysX3DEBUG${PHYSX_ARCH_FILE}
+
+ find_library(PHYSX_DLL_DEBUG
+ NAMES PhysX${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COMMON_DLL_DEBUG
- NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE}
+ find_library(PHYSXCOMMON_DLL_DEBUG
+ NAMES PhysXCommon${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_DLL_DEBUG
- NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE}
+ find_library(PHYSXCOOKING_DLL_DEBUG
+ NAMES PhysXCooking${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_DLL_DEBUG
+ NAMES PhysXFoundation${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
# NOTE - GPU dlls not included in required dlls or libs as they're optional.
- find_library(PHYSX3GPU_DLL_DEBUG
- NAMES PhysX3GpuDEBUG${PHYSX_ARCH_FILE}
+ find_library(PHYSXGPU_DLL_DEBUG
+ NAMES PhysXGpu${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
-
- find_library(PHYSX3_DLL_PROFILE
- NAMES PhysX3PROFILE${PHYSX_ARCH_FILE}
+
+
+ find_library(PHYSX_DLL_PROFILE
+ NAMES PhysX${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_DLL_PROFILE
+ NAMES PhysXCommon${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COMMON_DLL_PROFILE
- NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE}
+ find_library(PHYSXCOOKING_DLL_PROFILE
+ NAMES PhysXCooking${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_DLL_PROFILE
- NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE}
+ find_library(PHYSXFOUNDATION_DLL_PROFILE
+ NAMES PhysXFoundation${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
# NOTE - GPU dlls not included in required dlls or libs as they're optional.
- find_library(PHYSX3GPU_DLL_PROFILE
- NAMES PhysX3GpuPROFILE${PHYSX_ARCH_FILE}
+ find_library(PHYSXGPU_DLL_PROFILE
+ NAMES PhysXGpu${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3_DLL_CHECKED
- NAMES PhysX3CHECKED${PHYSX_ARCH_FILE}
+
+ find_library(PHYSX_DLL_CHECKED
+ NAMES PhysX${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXCOMMON_DLL_CHECKED
+ NAMES PhysXCommon${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COMMON_DLL_CHECKED
- NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE}
+ find_library(PHYSXCOOKING_DLL_CHECKED
+ NAMES PhysXCooking${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_DLL_CHECKED
- NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE}
+ find_library(PHYSXFOUNDATION_DLL_CHECKED
+ NAMES PhysXFoundation${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
# NOTE - GPU dlls not included in required dlls or libs as they're optional.
- find_library(PHYSX3GPU_DLL_CHECKED
- NAMES PhysX3GpuCHECKED${PHYSX_ARCH_FILE}
+ find_library(PHYSXGPU_DLL_CHECKED
+ NAMES PhysXGpu${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
PATHS ${DLL_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
+
+ # Restore library suffixes to both .dll and .lib so that it doesn't affect other packages.
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".lib")
+
# Create this list to check for found dlls below
SET(DLL_VAR_LIST
- PHYSX3_DLL
- PHYSX3COMMON_DLL
- PHYSX3COOKING_DLL
-
- PHYSX3_DLL_DEBUG
- PHYSX3COMMON_DLL_DEBUG
- PHYSX3COOKING_DLL_DEBUG
-
- PHYSX3_DLL_PROFILE
- PHYSX3COMMON_DLL_PROFILE
- PHYSX3COOKING_DLL_PROFILE
-
- PHYSX3_DLL_CHECKED
- PHYSX3COMMON_DLL_CHECKED
- PHYSX3COOKING_DLL_CHECKED
-
+ PHYSX_DLL
+ PHYSXCOMMON_DLL
+ PHYSXCOOKING_DLL
+ PHYSXFOUNDATION_DLL
+
+ PHYSX_DLL_DEBUG
+ PHYSXCOMMON_DLL_DEBUG
+ PHYSXCOOKING_DLL_DEBUG
+ PHYSXFOUNDATION_DLL_DEBUG
+
+ PHYSX_DLL_PROFILE
+ PHYSXCOMMON_DLL_PROFILE
+ PHYSXCOOKING_DLL_PROFILE
+ PHYSXFOUNDATION_DLL_PROFILE
+
+ PHYSX_DLL_CHECKED
+ PHYSXCOMMON_DLL_CHECKED
+ PHYSXCOOKING_DLL_CHECKED
+ PHYSXFOUNDATION_DLL_CHECKED
)
endif()
@@ -370,173 +487,279 @@ if (TARGET_BUILD_PLATFORM STREQUAL "linux")
SET(BIN_PATH ${PHYSXSDK_PATH}/bin/linux64-cmake ${PHYSXSDK_PATH}/../Bin)
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
- find_library(PHYSX3_LIB
- NAMES PhysX3${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PHYSX3COOKING_LIB
- NAMES PhysX3Cooking${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+
+ find_library(PHYSX_LIB
+ NAMES PhysX${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3CHARACTERKINEMATIC_LIB
- NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCOOKING_LIB
+ NAMES PhysXCooking${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COMMON_LIB
- NAMES PhysX3Common${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB
+ NAMES PhysXCharacterKinematic_static${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
)
+ find_library(PHYSXCOMMON_LIB
+ NAMES PhysXCommon${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${RELEASE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB
+ NAMES PhysXFoundation${RELEASE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
- find_library(PHYSX3_LIB_DEBUG
- NAMES PhysX3DEBUG${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSX_LIB_DEBUG
+ NAMES PhysX${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_LIB_DEBUG
- NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCOOKING_LIB_DEBUG
+ NAMES PhysXCooking${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3CHARACTERKINEMATIC_LIB_DEBUG
- NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PHYSX3COMMON_LIB_DEBUG
- NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB_DEBUG
+ NAMES PhysXCharacterKinematic_static${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
)
+ find_library(PHYSXCOMMON_LIB_DEBUG
+ NAMES PhysXCommon${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${DEBUG_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_DEBUG
+ NAMES PhysXFoundation${DEBUG_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
- find_library(PHYSX3_LIB_CHECKED
- NAMES PhysX3CHECKED${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSX_LIB_CHECKED
+ NAMES PhysX${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_LIB_CHECKED
- NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCOOKING_LIB_CHECKED
+ NAMES PhysXCooking${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3CHARACTERKINEMATIC_LIB_CHECKED
- NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PHYSX3COMMON_LIB_CHECKED
- NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB_CHECKED
+ NAMES PhysXCharacterKinematic_static${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
)
+ find_library(PHYSXCOMMON_LIB_CHECKED
+ NAMES PhysXCommon${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${CHECKED_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_CHECKED
+ NAMES PhysXFoundation${CHECKED_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
- find_library(PHYSX3_LIB_PROFILE
- NAMES PhysX3PROFILE${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSX_LIB_PROFILE
+ NAMES PhysX${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COOKING_LIB_PROFILE
- NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCOOKING_LIB_PROFILE
+ NAMES PhysXCooking${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3CHARACTERKINEMATIC_LIB_PROFILE
- NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
+ find_library(PHYSXCHARACTERKINEMATIC_STATIC_LIB_PROFILE
+ NAMES PhysXCharacterKinematic_static${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
)
- find_library(PHYSX3COMMON_LIB_PROFILE
- NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
-
+ find_library(PHYSXCOMMON_LIB_PROFILE
+ NAMES PhysXCommon${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ PATH_SUFFIXES ${PROFILE_CONFIG_PATH_SUFFIX}
+ )
+ find_library(PHYSXFOUNDATION_LIB_PROFILE
+ NAMES PhysXFoundation${PROFILE_CONFIG_SUFFIX}${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
endif()
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHYSXSDK
- DEFAULT_MSG
- PHYSXSDK_PATH
-
- PHYSX3_LIB
- PHYSX3EXTENSIONS_LIB
- PHYSX3CHARACTERKINEMATIC_LIB
- PHYSX3COMMON_LIB
- PHYSX3COOKING_LIB
- LOWLEVEL_LIB
- LOWLEVELAABB_LIB
- LOWLEVELCLOTH_LIB
- LOWLEVELDYNAMICS_LIB
- LOWLEVELPARTICLES_LIB
- SCENEQUERY_LIB
- SIMULATIONCONTROLLER_LIB
-
- PHYSX3_LIB_DEBUG
- PHYSX3EXTENSIONS_LIB_DEBUG
- PHYSX3CHARACTERKINEMATIC_LIB_DEBUG
- PHYSX3COMMON_LIB_DEBUG
- PHYSX3COOKING_LIB_DEBUG
- LOWLEVEL_LIB_DEBUG
- LOWLEVELAABB_LIB_DEBUG
- LOWLEVELCLOTH_LIB_DEBUG
- LOWLEVELDYNAMICS_LIB_DEBUG
- LOWLEVELPARTICLES_LIB_DEBUG
- SCENEQUERY_LIB_DEBUG
- SIMULATIONCONTROLLER_LIB_DEBUG
-
- PHYSX3_LIB_CHECKED
- PHYSX3EXTENSIONS_LIB_CHECKED
- PHYSX3CHARACTERKINEMATIC_LIB_CHECKED
- PHYSX3COMMON_LIB_CHECKED
- PHYSX3COOKING_LIB_CHECKED
- LOWLEVEL_LIB_CHECKED
- LOWLEVELAABB_LIB_CHECKED
- LOWLEVELCLOTH_LIB_CHECKED
- LOWLEVELDYNAMICS_LIB_CHECKED
- LOWLEVELPARTICLES_LIB_CHECKED
- SCENEQUERY_LIB_CHECKED
- SIMULATIONCONTROLLER_LIB_CHECKED
-
- PHYSX3_LIB_PROFILE
- PHYSX3EXTENSIONS_LIB_PROFILE
- PHYSX3CHARACTERKINEMATIC_LIB_PROFILE
- PHYSX3COMMON_LIB_PROFILE
- PHYSX3COOKING_LIB_PROFILE
- LOWLEVEL_LIB_PROFILE
- LOWLEVELAABB_LIB_PROFILE
- LOWLEVELCLOTH_LIB_PROFILE
- LOWLEVELDYNAMICS_LIB_PROFILE
- LOWLEVELPARTICLES_LIB_PROFILE
- SCENEQUERY_LIB_PROFILE
- SIMULATIONCONTROLLER_LIB_PROFILE
-
- ${DLL_VAR_LIST}
-)
+if (NOT TARGET_BUILD_PLATFORM STREQUAL "linux")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHYSXSDK
+ DEFAULT_MSG
+ PHYSXSDK_PATH
+
+ PHYSX_LIB
+ PHYSXEXTENSIONS_STATIC_LIB
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB
+ PHYSXCOMMON_LIB
+ PHYSXCOOKING_LIB
+ PHYSXFOUNDATION_LIB
+ PHYSXPVDSDK_STATIC_LIB
+ PHYSXTASK_STATIC_LIB
+
+ PHYSX_LIB_DEBUG
+ PHYSXEXTENSIONS_STATIC_LIB_DEBUG
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB_DEBUG
+ PHYSXCOMMON_LIB_DEBUG
+ PHYSXCOOKING_LIB_DEBUG
+ PHYSXFOUNDATION_LIB_DEBUG
+ PHYSXPVDSDK_STATIC_LIB_DEBUG
+ PHYSXTASK_STATIC_LIB_DEBUG
+
+ PHYSX_LIB_CHECKED
+ PHYSXEXTENSIONS_STATIC_LIB_CHECKED
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB_CHECKED
+ PHYSXCOMMON_LIB_CHECKED
+ PHYSXCOOKING_LIB_CHECKED
+ PHYSXFOUNDATION_LIB_CHECKED
+ PHYSXPVDSDK_STATIC_LIB_CHECKED
+ PHYSXTASK_STATIC_LIB_CHECKED
+
+ PHYSX_LIB_PROFILE
+ PHYSXEXTENSIONS_STATIC_LIB_PROFILE
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB_PROFILE
+ PHYSXCOMMON_LIB_PROFILE
+ PHYSXCOOKING_LIB_PROFILE
+ PHYSXFOUNDATION_LIB_PROFILE
+ PHYSXPVDSDK_STATIC_LIB_PROFILE
+ PHYSXTASK_STATIC_LIB_PROFILE
+
+ ${DLL_VAR_LIST}
+ )
+else()
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHYSXSDK
+ DEFAULT_MSG
+ PHYSXSDK_PATH
+
+ PHYSX_LIB
+ PHYSXEXTENSIONS_STATIC_LIB
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB
+ PHYSXCOMMON_LIB
+ PHYSXCOOKING_LIB
+ PHYSXFOUNDATION_LIB
+ PHYSXPVDSDK_STATIC_LIB
+
+ PHYSX_LIB_DEBUG
+ PHYSXEXTENSIONS_STATIC_LIB_DEBUG
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB_DEBUG
+ PHYSXCOMMON_LIB_DEBUG
+ PHYSXCOOKING_LIB_DEBUG
+ PHYSXFOUNDATION_LIB_DEBUG
+ PHYSXPVDSDK_STATIC_LIB_DEBUG
+
+ PHYSX_LIB_CHECKED
+ PHYSXEXTENSIONS_STATIC_LIB_CHECKED
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB_CHECKED
+ PHYSXCOMMON_LIB_CHECKED
+ PHYSXCOOKING_LIB_CHECKED
+ PHYSXFOUNDATION_LIB_CHECKED
+ PHYSXPVDSDK_STATIC_LIB_CHECKED
+
+ PHYSX_LIB_PROFILE
+ PHYSXEXTENSIONS_STATIC_LIB_PROFILE
+ PHYSXCHARACTERKINEMATIC_STATIC_LIB_PROFILE
+ PHYSXCOMMON_LIB_PROFILE
+ PHYSXCOOKING_LIB_PROFILE
+ PHYSXFOUNDATION_LIB_PROFILE
+ PHYSXPVDSDK_STATIC_LIB_PROFILE
+
+ ${DLL_VAR_LIST}
+ )
+endif()
if (PHYSXSDK_FOUND)
- SET(PHYSXSDK_INCLUDE_DIRS
- ${PHYSXSDK_PATH}/Include
- ${PHYSXSDK_PATH}/Include/common
- ${PHYSXSDK_PATH}/Include/cooking
- ${PHYSXSDK_PATH}/Include/extensions
- ${PHYSXSDK_PATH}/Include/geometry
- ${PHYSXSDK_PATH}/Include/gpu
- ${PHYSXSDK_PATH}/Include/deformable
- ${PHYSXSDK_PATH}/Include/particles
- ${PHYSXSDK_PATH}/Include/characterkinematic
- ${PHYSXSDK_PATH}/Include/characterdynamic
- ${PHYSXSDK_PATH}/Include/vehicle
+ SET(PHYSXSDK_INCLUDE_DIRS
+ ${PHYSXSDK_PATH}/include
+ ${PHYSXSDK_PATH}/include/characterdynamic
+ ${PHYSXSDK_PATH}/include/characterkinematic
+ ${PHYSXSDK_PATH}/include/common
+ ${PHYSXSDK_PATH}/include/cooking
+ ${PHYSXSDK_PATH}/include/deformable
+ ${PHYSXSDK_PATH}/include/extensions
+ ${PHYSXSDK_PATH}/include/filebuf
+ ${PHYSXSDK_PATH}/include/foundation
+ ${PHYSXSDK_PATH}/include/geometry
+ ${PHYSXSDK_PATH}/include/gpu
+ ${PHYSXSDK_PATH}/include/particles
+ ${PHYSXSDK_PATH}/include/pvd
+ ${PHYSXSDK_PATH}/include/task
+ ${PHYSXSDK_PATH}/include/vehicle
+ ${PHYSXSDK_PATH}/source/fastxml/include
+ ${PHYSXSDK_PATH}/source/foundation/include
)
- SET(PHYSXSDK_LIBS_RELEASE ${PHYSX3_LIB} ${PHYSX3EXTENSIONS_LIB} ${PHYSX3CHARACTERKINEMATIC_LIB} ${PHYSX3COMMON_LIB} ${PHYSX3COOKING_LIB} ${PHYSX3GPU_LIB} ${LOWLEVEL_LIB} ${LOWLEVELAABB_LIB} ${LOWLEVELCLOTH_LIB} ${LOWLEVELDYNAMICS_LIB} ${LOWLEVELPARTICLES_LIB} ${SCENEQUERY_LIB} ${SIMULATIONCONTROLLER_LIB}
- CACHE STRING ""
- )
- SET(PHYSXSDK_LIBS_DEBUG ${PHYSX3_LIB_DEBUG} ${PHYSX3EXTENSIONS_LIB_DEBUG} ${PHYSX3CHARACTERKINEMATIC_LIB_DEBUG} ${PHYSX3COMMON_LIB_DEBUG} ${PHYSX3COOKING_LIB_DEBUG} ${PHYSX3GPU_LIB_DEBUG} ${LOWLEVEL_LIB_DEBUG} ${LOWLEVELAABB_LIB_DEBUG} ${LOWLEVELCLOTH_LIB_DEBUG} ${LOWLEVELDYNAMICS_LIB_DEBUG} ${LOWLEVELPARTICLES_LIB_DEBUG} ${SCENEQUERY_LIB_DEBUG} ${SIMULATIONCONTROLLER_LIB_DEBUG}
- CACHE STRING ""
- )
- SET(PHYSXSDK_LIBS_CHECKED ${PHYSX3_LIB_CHECKED} ${PHYSX3EXTENSIONS_LIB_CHECKED} ${PHYSX3CHARACTERKINEMATIC_LIB_CHECKED} ${PHYSX3COMMON_LIB_CHECKED} ${PHYSX3COOKING_LIB_CHECKED} ${PHYSX3GPU_LIB_CHECKED} ${LOWLEVEL_LIB_CHECKED} ${LOWLEVELAABB_LIB_CHECKED} ${LOWLEVELCLOTH_LIB_CHECKED} ${LOWLEVELDYNAMICS_LIB_CHECKED} ${LOWLEVELPARTICLES_LIB_CHECKED} ${SCENEQUERY_LIB_CHECKED} ${SIMULATIONCONTROLLER_LIB_CHECKED}
- CACHE STRING ""
- )
- SET(PHYSXSDK_LIBS_PROFILE ${PHYSX3_LIB_PROFILE} ${PHYSX3EXTENSIONS_LIB_PROFILE} ${PHYSX3CHARACTERKINEMATIC_LIB_PROFILE} ${PHYSX3COMMON_LIB_PROFILE} ${PHYSX3COOKING_LIB_PROFILE} ${PHYSX3GPU_LIB_PROFILE} ${LOWLEVEL_LIB_PROFILE} ${LOWLEVELAABB_LIB_PROFILE} ${LOWLEVELCLOTH_LIB_PROFILE} ${LOWLEVELDYNAMICS_LIB_PROFILE} ${LOWLEVELPARTICLES_LIB_PROFILE} ${SCENEQUERY_LIB_PROFILE} ${SIMULATIONCONTROLLER_LIB_PROFILE}
- CACHE STRING ""
- )
+ if (NOT TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(PHYSXSDK_LIBS_RELEASE ${PHYSX_LIB} ${PHYSXEXTENSIONS_STATIC_LIB} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB} ${PHYSXCOMMON_LIB} ${PHYSXCOOKING_LIB} ${PHYSXFOUNDATION_LIB} ${PHYSXPVDSDK_STATIC_LIB} ${PHYSXTASK_STATIC_LIB} ${PHYSXGPU_LIB}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_DEBUG ${PHYSX_LIB_DEBUG} ${PHYSXEXTENSIONS_STATIC_LIB_DEBUG} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB_DEBUG} ${PHYSXCOMMON_LIB_DEBUG} ${PHYSXCOOKING_LIB_DEBUG} ${PHYSXFOUNDATION_LIB_DEBUG} ${PHYSXPVDSDK_STATIC_LIB_PROFILE} ${PHYSXTASK_STATIC_LIB_PROFILE} ${PHYSXGPU_LIB_DEBUG}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_CHECKED ${PHYSX_LIB_CHECKED} ${PHYSXEXTENSIONS_STATIC_LIB_CHECKED} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB_CHECKED} ${PHYSXCOMMON_LIB_CHECKED} ${PHYSXCOOKING_LIB_CHECKED} ${PHYSXFOUNDATION_LIB_CHECKED} ${PHYSXPVDSDK_STATIC_LIB_CHECKED} ${PHYSXTASK_STATIC_LIB_CHECKED} ${PHYSXGPU_LIB_CHECKED}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_PROFILE ${PHYSX_LIB_PROFILE} ${PHYSXEXTENSIONS_STATIC_LIB_PROFILE} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB_PROFILE} ${PHYSXCOMMON_LIB_PROFILE} ${PHYSXCOOKING_LIB_PROFILE} ${PHYSXFOUNDATION_LIB_PROFILE} ${PHYSXPVDSDK_STATIC_LIB_PROFILE} ${PHYSXTASK_STATIC_LIB_PROFILE} ${PHYSXGPU_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+ #NOTE: This is all dll configs, might need to be split.
+ SET(PHYSXSDK_DLLS
+ $<$<CONFIG:debug>:${PHYSX_DLL_DEBUG}>
+ $<$<CONFIG:debug>:${PHYSXCHARACTERKINEMATIC_DLL_DEBUG}>
+ $<$<CONFIG:debug>:${PHYSXCOMMON_DLL_DEBUG}>
+ $<$<CONFIG:debug>:${PHYSXCOOKING_DLL_DEBUG}>
+ $<$<CONFIG:debug>:${PHYSXFOUNDATION_DLL_DEBUG}>
+ $<$<CONFIG:debug>:${PHYSXGPU_DLL_DEBUG}>
+ $<$<CONFIG:checked>:${PHYSX_DLL_CHECKED}>
+ $<$<CONFIG:checked>:${PHYSXCHARACTERKINEMATIC_DLL_CHECKED}>
+ $<$<CONFIG:checked>:${PHYSXCOMMON_DLL_CHECKED}>
+ $<$<CONFIG:checked>:${PHYSXCOOKING_DLL_CHECKED}>
+ $<$<CONFIG:checked>:${PHYSXFOUNDATION_DLL_CHECKED}>
+ $<$<CONFIG:checked>:${PHYSXGPU_DLL_CHECKED}>
+ $<$<CONFIG:profile>:${PHYSX_DLL_PROFILE}>
+ $<$<CONFIG:profile>:${PHYSXCHARACTERKINEMATIC_DLL_PROFILE}>
+ $<$<CONFIG:profile>:${PHYSXCOMMON_DLL_PROFILE}>
+ $<$<CONFIG:profile>:${PHYSXCOOKING_DLL_PROFILE}>
+ $<$<CONFIG:profile>:${PHYSXFOUNDATION_DLL_PROFILE}>
+ $<$<CONFIG:profile>:${PHYSXGPU_DLL_PROFILE}>
+ $<$<CONFIG:release>:${PHYSX_DLL}>
+ $<$<CONFIG:release>:${PHYSXCHARACTERKINEMATIC_DLL}>
+ $<$<CONFIG:release>:${PHYSXCOMMON_DLL}>
+ $<$<CONFIG:release>:${PHYSXCOOKING_DLL}>
+ $<$<CONFIG:release>:${PHYSXFOUNDATION_DLL}>
+ $<$<CONFIG:release>:${PHYSXGPU_DLL}>
+ )
+ else()
+ SET(PHYSXSDK_LIBS_RELEASE ${PHYSX_LIB} ${PHYSXEXTENSIONS_STATIC_LIB} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB} ${PHYSXCOMMON_LIB} ${PHYSXCOOKING_LIB} ${PHYSXFOUNDATION_LIB} ${PHYSXPVDSDK_STATIC_LIB} ${PHYSXGPU_LIB}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_DEBUG ${PHYSX_LIB_DEBUG} ${PHYSXEXTENSIONS_STATIC_LIB_DEBUG} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB_DEBUG} ${PHYSXCOMMON_LIB_DEBUG} ${PHYSXCOOKING_LIB_DEBUG} ${PHYSXFOUNDATION_LIB_DEBUG} ${PHYSXPVDSDK_STATIC_LIB_PROFILE} ${PHYSXGPU_LIB_DEBUG}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_CHECKED ${PHYSX_LIB_CHECKED} ${PHYSXEXTENSIONS_STATIC_LIB_CHECKED} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB_CHECKED} ${PHYSXCOMMON_LIB_CHECKED} ${PHYSXCOOKING_LIB_CHECKED} ${PHYSXFOUNDATION_LIB_CHECKED} ${PHYSXPVDSDK_STATIC_LIB_CHECKED} ${PHYSXGPU_LIB_CHECKED}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_PROFILE ${PHYSX_LIB_PROFILE} ${PHYSXEXTENSIONS_STATIC_LIB_PROFILE} ${PHYSXCHARACTERKINEMATIC_STATIC_LIB_PROFILE} ${PHYSXCOMMON_LIB_PROFILE} ${PHYSXCOOKING_LIB_PROFILE} ${PHYSXFOUNDATION_LIB_PROFILE} ${PHYSXPVDSDK_STATIC_LIB_PROFILE} ${PHYSXGPU_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+ SET(PHYSXSDK_DLLS
+ $<$<CONFIG:debug>:${PHYSXGPU_DLL_DEBUG}>
+ $<$<CONFIG:checked>:${PHYSXGPU_DLL_CHECKED}>
+ $<$<CONFIG:profile>:${PHYSXGPU_DLL_PROFILE}>
+ $<$<CONFIG:release>:${PHYSXGPU_DLL}>
+ )
+ endif()
- #NOTE: This is all dll configs, might need to be split.
- SET(PHYSXSDK_DLLS
- ${PHYSX3_DLL} ${PHYSX3CHARACTERKINEMATIC_DLL} ${PHYSX3COMMON_DLL} ${PHYSX3COOKING_DLL} ${PHYSX3GPU_DLL}
- ${PHYSX3_DLL_DEBUG} ${PHYSX3CHARACTERKINEMATIC_DLL_DEBUG} ${PHYSX3COMMON_DLL_DEBUG} ${PHYSX3COOKING_DLL_DEBUG} ${PHYSX3GPU_DLL_DEBUG}
- ${PHYSX3_DLL_PROFILE} ${PHYSX3CHARACTERKINEMATIC_DLL_PROFILE} ${PHYSX3COMMON_DLL_PROFILE} ${PHYSX3COOKING_DLL_PROFILE} ${PHYSX3GPU_DLL_PROFILE}
- ${PHYSX3_DLL_CHECKED} ${PHYSX3CHARACTERKINEMATIC_DLL_CHECKED} ${PHYSX3COMMON_DLL_CHECKED} ${PHYSX3COOKING_DLL_CHECKED} ${PHYSX3GPU_DLL_CHECKED}
- )
-
SET(PHYSXSDK_LIBRARIES "" CACHE STRING "")
foreach(x ${PHYSXSDK_LIBS_RELEASE})
diff --git a/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake b/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
index c3a5da1..ba89d43 100755
--- a/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
+++ b/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
@@ -1,315 +1,26 @@
-# - Try to find PxShared binary SDK
-# - Sets PXSHAREDSDK_LIBS_DEBUG and PXSHAREDSDK_LIBS_RELEASE - lists of the libraries found
+# - Try to find PxShared SDK
# - Sets PXSHAREDSDK_INCLUDE_DIRS
-# - Sets PXSHAREDSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this
include(FindPackageHandleStandardArgs)
-# Find the includes
-
# Always try explicit PATH variable first
find_path(PXSHAREDSDK_PATH include/foundation/Px.h
- PATHS
- $ENV{PM_PxShared_PATH}
- $ENV{PM_PhysX_PATH}/PxShared # multipack
- ${GW_DEPS_ROOT}/$ENV{PM_PxShared_NAME}/${PxSharedSDK_FIND_VERSION}
- ${GW_DEPS_ROOT}/PxShared/${PxSharedSDK_FIND_VERSION}
+ PATHS
+ $ENV{PM_pxshared_PATH}
)
-if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
- # If the project pulling in this dependency needs the static crt, then append that to the path.
- if (STATIC_WINCRT)
- SET(PXSHARED_CRT_SUFFIX "-staticcrt")
- else()
- SET(PXSHARED_CRT_SUFFIX "")
- endif()
-
- if (CMAKE_CL_64)
- SET(PXSHARED_ARCH_FOLDER "win64")
- SET(PXSHARED_ARCH_FILE "_x64")
- else()
- SET(PXSHARED_ARCH_FOLDER "win32")
- SET(PXSHARED_ARCH_FILE "_x86")
- endif()
-
- # What compiler version do we want?
-
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
- SET(VS_STR "VS2013")
- elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10.0.0)
- SET(VS_STR "VS2015")
- elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.10.0.0)
- SET(VS_STR "VS2017")
- else()
- MESSAGE(FATAL_ERROR "Failed to find compatible PxSharedSDK - Only supporting VS2013 and VS2015")
- endif()
-
- SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/${VS_STR}${PXSHARED_ARCH_FOLDER}-cmake${PXSHARED_CRT_SUFFIX} ${PXSHAREDSDK_PATH}/lib/${VS_STR}${PXSHARED_ARCH_FOLDER} ${PXSHAREDSDK_PATH}/../lib/${PXSHARED_ARCH_FOLDER}/${VS_STR} ${PXSHAREDSDK_PATH}/../lib)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
-
-elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
- SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/vc14ps4-cmake ${PXSHAREDSDK_PATH}/../lib)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
-elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
- SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/vc14xboxone-cmake ${PXSHAREDSDK_PATH}/../Lib)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
- SET(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
-elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
- SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/linux64-cmake ${PXSHAREDSDK_PATH}/../Lib)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
- SET(PXSHARED_ARCH_FILE "_x64")
-endif()
-
-
-# Now find all of the PxShared libs in the lib directory
-
-
-find_library(PSFASTXML_LIB
- NAMES PsFastXml PsFastXml${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXFOUNDATION_LIB
- NAMES PxFoundation${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXPVDSDK_LIB
- NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXTASK_LIB
- NAMES PxTask PxTask${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-
-find_library(PSFASTXML_LIB_DEBUG
- NAMES PsFastXmlDEBUG PsFastXmlDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXFOUNDATION_LIB_DEBUG
- NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXPVDSDK_LIB_DEBUG
- NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXTASK_LIB_DEBUG
- NAMES PxTaskDEBUG PxTaskDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-
-find_library(PSFASTXML_LIB_CHECKED
- NAMES PsFastXmlCHECKED PsFastXmlCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXFOUNDATION_LIB_CHECKED
- NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXPVDSDK_LIB_CHECKED
- NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXTASK_LIB_CHECKED
- NAMES PxTaskCHECKED PxTaskCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-
-find_library(PSFASTXML_LIB_PROFILE
- NAMES PsFastXmlPROFILE PsFastXmlPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXFOUNDATION_LIB_PROFILE
- NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXPVDSDK_LIB_PROFILE
- NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-find_library(PXTASK_LIB_PROFILE
- NAMES PxTaskPROFILE PxTaskPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${LIB_PATH}
-)
-
-if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
- SET(DLL_PATH ${PXSHAREDSDK_PATH}/bin/${VS_STR}${PXSHARED_ARCH_FOLDER}-cmake${PXSHARED_CRT_SUFFIX} ${PXSHAREDSDK_PATH}/bin/${VS_STR}${PXSHARED_ARCH_FOLDER} ${PXSHAREDSDK_PATH}/../bin/${PXSHARED_ARCH_FOLDER}/${VS_STR} ${PXSHAREDSDK_PATH}/../bin)
-
- find_library(PXFOUNDATION_DLL
- NAMES PxFoundation${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
- find_library(PXPVDSDK_DLL
- NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
-
- find_library(PXFOUNDATION_DLL_DEBUG
- NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
- find_library(PXPVDSDK_DLL_DEBUG
- NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
-
- find_library(PXFOUNDATION_DLL_CHECKED
- NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
- find_library(PXPVDSDK_DLL_CHECKED
- NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
-
- find_library(PXFOUNDATION_DLL_PROFILE
- NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
- find_library(PXPVDSDK_DLL_PROFILE
- NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${DLL_PATH}
- )
-
- #Put the found dll variables in a list if we actually looked for them (windows)
- SET(DLL_VAR_LIST
- PXFOUNDATION_DLL
- PXPVDSDK_DLL
-
- PXFOUNDATION_DLL_DEBUG
- PXPVDSDK_DLL_DEBUG
-
- PXFOUNDATION_DLL_CHECKED
- PXPVDSDK_DLL_CHECKED
-
- PXFOUNDATION_DLL_PROFILE
- PXPVDSDK_DLL_PROFILE
-
- )
-endif()
-
-if (TARGET_BUILD_PLATFORM STREQUAL "linux")
- SET(BIN_PATH ${PXSHAREDSDK_PATH}/bin/linux64-cmake ${PXSHAREDSDK_PATH}/../Bin)
- SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
-
- find_library(PXFOUNDATION_LIB
- NAMES PxFoundation${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PXPVDSDK_LIB
- NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
-
- find_library(PXFOUNDATION_LIB_CHECKED
- NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PXPVDSDK_LIB_CHECKED
- NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
-
- find_library(PXFOUNDATION_LIB_DEBUG
- NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PXPVDSDK_LIB_DEBUG
- NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
-
- find_library(PXFOUNDATION_LIB_PROFILE
- NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
- find_library(PXPVDSDK_LIB_PROFILE
- NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
- PATHS ${BIN_PATH}
- )
-endif()
-
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PXSHAREDSDK
DEFAULT_MSG
PXSHAREDSDK_PATH
-
- PSFASTXML_LIB
- PXFOUNDATION_LIB
- PXPVDSDK_LIB
- PXTASK_LIB
-
- PSFASTXML_LIB_DEBUG
- PXFOUNDATION_LIB_DEBUG
- PXPVDSDK_LIB_DEBUG
- PXTASK_LIB_DEBUG
-
- PSFASTXML_LIB_CHECKED
- PXFOUNDATION_LIB_CHECKED
- PXPVDSDK_LIB_CHECKED
- PXTASK_LIB_CHECKED
-
- PSFASTXML_LIB_PROFILE
- PXFOUNDATION_LIB_PROFILE
- PXPVDSDK_LIB_PROFILE
- PXTASK_LIB_PROFILE
-
-
- ${DLL_VAR_LIST}
)
if (PXSHAREDSDK_FOUND)
-
# NOTE: This include list is way too long and reaches into too many internals.
# Also may not be good enough for all users.
SET(PXSHAREDSDK_INCLUDE_DIRS
- ${PXSHAREDSDK_PATH}/include
- ${PXSHAREDSDK_PATH}/include/pvd
- ${PXSHAREDSDK_PATH}/include/task
+ ${PXSHAREDSDK_PATH}/include
${PXSHAREDSDK_PATH}/include/filebuf
${PXSHAREDSDK_PATH}/include/foundation
- ${PXSHAREDSDK_PATH}/src/foundation/include
${PXSHAREDSDK_PATH}/src/filebuf/include
- ${PXSHAREDSDK_PATH}/src/fastxml/include
- )
-
- SET(PXSHAREDSDK_LIBS_RELEASE ${PSFASTXML_LIB} ${PXFOUNDATION_LIB} ${PXPVDSDK_LIB} ${PXTASK_LIB}
- CACHE STRING ""
- )
- SET(PXSHAREDSDK_LIBS_DEBUG ${PSFASTXML_LIB_DEBUG} ${PXFOUNDATION_LIB_DEBUG} ${PXPVDSDK_LIB_DEBUG} ${PXTASK_LIB_DEBUG}
- CACHE STRING ""
- )
-
- SET(PXSHAREDSDK_LIBS_CHECKED ${PSFASTXML_LIB_CHECKED} ${PXFOUNDATION_LIB_CHECKED} ${PXPVDSDK_LIB_CHECKED} ${PXTASK_LIB_CHECKED}
- CACHE STRING ""
- )
-
- SET(PXSHAREDSDK_LIBS_PROFILE ${PSFASTXML_LIB_PROFILE} ${PXFOUNDATION_LIB_PROFILE} ${PXPVDSDK_LIB_PROFILE} ${PXTASK_LIB_PROFILE}
- CACHE STRING ""
- )
-
- SET(PXSHAREDSDK_DLLS
- ${PXFOUNDATION_DLL}
- ${PXPVDSDK_DLL}
-
- ${PXFOUNDATION_DLL_DEBUG}
- ${PXPVDSDK_DLL_DEBUG}
-
- ${PXFOUNDATION_DLL_CHECKED}
- ${PXPVDSDK_DLL_CHECKED}
-
- ${PXFOUNDATION_DLL_PROFILE}
- ${PXPVDSDK_DLL_PROFILE}
)
-
- SET(PXSHAREDSDK_LIBRARIES "" CACHE STRING "")
-
- foreach(x ${PXSHAREDSDK_LIBS_RELEASE})
- list(APPEND PXSHAREDSDK_LIBRARIES optimized ${x})
- endforeach()
-
- foreach(x ${PXSHAREDSDK_LIBS_DEBUG})
- list(APPEND PXSHAREDSDK_LIBRARIES debug ${x})
- endforeach()
endif()
diff --git a/sdk/compiler/cmake/windows/CMakeLists.txt b/sdk/compiler/cmake/windows/CMakeLists.txt
index ee886ff..836ee96 100755
--- a/sdk/compiler/cmake/windows/CMakeLists.txt
+++ b/sdk/compiler/cmake/windows/CMakeLists.txt
@@ -59,6 +59,7 @@ INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtAuthoring.cmake)
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtImport.cmake)
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtAssetUtils.cmake)
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtExporter.cmake)
+# INCLUDE(${PROJECT_CMAKE_FILES_DIR}/NvBlastExtRT.cmake)
SET(SERIALIZATION_INCLUDED 1 PARENT_SCOPE)
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoringCutoutImpl.cpp b/sdk/extensions/authoring/source/NvBlastExtAuthoringCutoutImpl.cpp
index a1fc150..7764f7e 100755
--- a/sdk/extensions/authoring/source/NvBlastExtAuthoringCutoutImpl.cpp
+++ b/sdk/extensions/authoring/source/NvBlastExtAuthoringCutoutImpl.cpp
@@ -32,6 +32,7 @@
#include <PxMath.h>
#include <NvBlastPxSharedHelpers.h>
#include "NvBlastExtAuthoringCutoutImpl.h"
+#include <PxAssert.h>
#include <algorithm>
#include <set>
#include <map>
diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h
index 42ebaf5..ee3cc49 100755
--- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h
+++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h
@@ -54,6 +54,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <new> // for placement new
+#include <PxAssert.h>
PX_PUSH_PACK_DEFAULT
diff --git a/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp b/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp
index bc0cd12..bbd9953 100755
--- a/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp
+++ b/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp
@@ -181,7 +181,7 @@ uint32_t getPartIndex(const DestructibleAssetParameters* prm, uint32_t id)
ApexImportTool::ApexImportTool()
{
m_Foundation =
- PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
+ PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
if (!m_Foundation)
{
NVBLAST_LOG_ERROR("Error: failed to create Foundation\n");
diff --git a/sdk/extensions/physx/include/NvBlastExtCustomProfiler.h b/sdk/extensions/physx/include/NvBlastExtCustomProfiler.h
index 546850a..8b5c167 100755
--- a/sdk/extensions/physx/include/NvBlastExtCustomProfiler.h
+++ b/sdk/extensions/physx/include/NvBlastExtCustomProfiler.h
@@ -31,6 +31,7 @@
#include "NvBlastProfiler.h"
#include "PxProfiler.h"
+#include <PxFoundation.h>
#if NV_NVTX
#include "nvToolsExt.h"
diff --git a/shared/filebuf/include/PsAsciiConversion.h b/shared/filebuf/include/PsAsciiConversion.h
new file mode 100644
index 0000000..9df5be9
--- /dev/null
+++ b/shared/filebuf/include/PsAsciiConversion.h
@@ -0,0 +1,99 @@
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of NVIDIA CORPORATION nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
+
+#ifndef PSFILEBUFFER_PSASCIICONVERSION_H
+#define PSFILEBUFFER_PSASCIICONVERSION_H
+
+/*!
+\file
+\brief PxAsciiConversion namespace contains string/value helper functions
+*/
+
+#include "PxMath.h"
+#include "PsString.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <float.h>
+
+namespace physx
+{
+namespace general_string_parsing2
+{
+namespace PxAsc
+{
+
+const uint32_t PxF32StrLen = 24;
+const uint32_t PxF64StrLen = 32;
+const uint32_t IntStrLen = 32;
+
+PX_INLINE bool isWhiteSpace(char c);
+PX_INLINE const char * skipNonWhiteSpace(const char *scan);
+PX_INLINE const char * skipWhiteSpace(const char *scan);
+
+//////////////////////////
+// str to value functions
+//////////////////////////
+PX_INLINE bool strToBool(const char *str, const char **endptr);
+PX_INLINE int8_t strToI8(const char *str, const char **endptr);
+PX_INLINE int16_t strToI16(const char *str, const char **endptr);
+PX_INLINE int32_t strToI32(const char *str, const char **endptr);
+PX_INLINE int64_t strToI64(const char *str, const char **endptr);
+PX_INLINE uint8_t strToU8(const char *str, const char **endptr);
+PX_INLINE uint16_t strToU16(const char *str, const char **endptr);
+PX_INLINE uint32_t strToU32(const char *str, const char **endptr);
+PX_INLINE uint64_t strToU64(const char *str, const char **endptr);
+PX_INLINE float strToF32(const char *str, const char **endptr);
+PX_INLINE double strToF64(const char *str, const char **endptr);
+PX_INLINE void strToF32s(float *v,uint32_t count,const char *str, const char**endptr);
+
+
+//////////////////////////
+// value to str functions
+//////////////////////////
+PX_INLINE const char * valueToStr( bool val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( int8_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( int16_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( int32_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( int64_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( uint8_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( uint16_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( uint32_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( uint64_t val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( float val, char *buf, uint32_t n );
+PX_INLINE const char * valueToStr( double val, char *buf, uint32_t n );
+
+#include "PsAsciiConversion.inl"
+
+} // end of namespace
+} // end of namespace
+using namespace general_string_parsing2;
+} // end of namespace
+
+
+#endif // PSFILEBUFFER_PSASCIICONVERSION_H
diff --git a/shared/filebuf/include/PsAsciiConversion.inl b/shared/filebuf/include/PsAsciiConversion.inl
new file mode 100644
index 0000000..3b95813
--- /dev/null
+++ b/shared/filebuf/include/PsAsciiConversion.inl
@@ -0,0 +1,566 @@
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of NVIDIA CORPORATION nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
+
+/*!
+\file
+\brief NvAsciiConversion namespace contains string/value helper functions
+*/
+
+#include <ctype.h>
+
+PX_INLINE bool isWhiteSpace(char c)
+{
+ bool ret = false;
+ if ( c == 32 || c == 9 || c == 13 || c == 10 || c == ',' ) ret = true;
+ return ret;
+}
+
+PX_INLINE const char * skipNonWhiteSpace(const char *scan)
+{
+ while ( !isWhiteSpace(*scan) && *scan) scan++;
+ if ( *scan == 0 ) scan = NULL;
+ return scan;
+}
+PX_INLINE const char * skipWhiteSpace(const char *scan)
+{
+ while ( isWhiteSpace(*scan) && *scan ) scan++;
+ if ( *scan == 0 ) scan = NULL;
+ return scan;
+}
+
+static double strtod_fast(const char * pString)
+{
+ //---
+ // Find the start of the string
+ const char* pNumberStart = skipWhiteSpace(pString);
+
+ //---
+ // Find the end of the string
+ const char* pNumberEnd = pNumberStart;
+
+ // skip optional sign
+ if( *pNumberEnd == '-' || *pNumberEnd == '+' )
+ ++pNumberEnd;
+
+ // skip optional digits
+ while( isdigit(*pNumberEnd) )
+ ++pNumberEnd;
+
+ // skip optional decimal and digits
+ if( *pNumberEnd == '.' )
+ {
+ ++pNumberEnd;
+
+ while( isdigit(*pNumberEnd) )
+ ++pNumberEnd;
+ }
+
+ // skip optional exponent
+ if( *pNumberEnd == 'd'
+ || *pNumberEnd == 'D'
+ || *pNumberEnd == 'e'
+ || *pNumberEnd == 'E' )
+ {
+ ++pNumberEnd;
+
+ if( *pNumberEnd == '-' || *pNumberEnd == '+' )
+ ++pNumberEnd;
+
+ while( isdigit(*pNumberEnd) )
+ ++pNumberEnd;
+ }
+
+ //---
+ // Process the string
+ const uint32_t numberLen = (const uint32_t)(pNumberEnd-pNumberStart);
+ char buffer[32];
+ if( numberLen+1 < sizeof(buffer)/sizeof(buffer[0]) )
+ {
+ // copy into buffer and terminate with NUL before calling the
+ // standard function
+ memcpy( buffer, pNumberStart, numberLen*sizeof(buffer[0]) );
+ buffer[numberLen] = '\0';
+ const double result = strtod( buffer, NULL );
+
+ return result;
+ }
+ else
+ {
+ // buffer was too small so just call the standard function on the
+ // source input to get a proper result
+ return strtod( pString, NULL );
+ }
+}
+
+static float strtof_fast(const char* pString)
+{
+ return (float)strtod_fast(pString);
+}
+
+
+//////////////////////////
+// str to value functions
+//////////////////////////
+PX_INLINE bool strToBool(const char *str, const char **endptr)
+{
+ bool ret = false;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ size_t len = (size_t)(end - begin);
+ if ( physx::shdfnd::strnicmp(begin,"true", len) == 0 || physx::shdfnd::strnicmp(begin,"1", len) == 0 )
+ ret = true;
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE int8_t strToI8(const char *str, const char **endptr)
+{
+ int8_t ret;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ if( strncmp(begin, "INT8_MIN", (size_t)(end-begin)) == 0)
+ ret = INT8_MIN;
+ else if( strncmp(begin, "INT8_MAX", (size_t)(end-begin)) == 0)
+ ret = INT8_MAX;
+ else if( strncmp(begin, "PX_MIN_I8", (size_t)(end-begin)) == 0)
+ ret = INT8_MIN;
+ else if( strncmp(begin, "PX_MAX_I8", (size_t)(end-begin)) == 0)
+ ret = INT8_MAX;
+ else
+ ret = (int8_t)strtol(begin, 0, 0); //FIXME
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE int16_t strToI16(const char *str, const char **endptr)
+{
+ int16_t ret;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ if( strncmp(begin, "INT16_MIN", (size_t)(end-begin)) == 0)
+ ret = INT16_MIN;
+ else if( strncmp(begin, "INT16_MAX", (size_t)(end-begin)) == 0)
+ ret = INT16_MAX;
+ else if( strncmp(begin, "PX_MIN_I16", (size_t)(end-begin)) == 0)
+ ret = INT16_MIN;
+ else if( strncmp(begin, "PX_MAX_I16", (size_t)(end-begin)) == 0)
+ ret = INT16_MAX;
+ else
+ ret = (int16_t)strtol(begin, 0, 0); //FIXME
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE int32_t strToI32(const char *str, const char **endptr)
+{
+ int32_t ret;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ if( strncmp(begin, "INT32_MIN", (size_t)(end-begin)) == 0)
+ ret = INT32_MIN;
+ else if( strncmp(begin, "INT32_MAX", (size_t)(end-begin)) == 0)
+ ret = INT32_MAX;
+ else if( strncmp(begin, "PX_MIN_I32", (size_t)(end-begin)) == 0)
+ ret = INT32_MIN;
+ else if( strncmp(begin, "PX_MAX_I32", (size_t)(end-begin)) == 0)
+ ret = INT32_MAX;
+ else
+ ret = (int32_t)strtol(begin, 0, 0); //FIXME
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE int64_t strToI64(const char *str, const char **endptr)
+{
+ int64_t ret;
+ const char *begin = skipWhiteSpace(str);
+
+ //FIXME
+#ifdef _WIN32 //NV_WINDOWS, NV_XBOX
+ ret = (int64_t)_strtoi64(begin,0,10);
+#else
+ ret = (int64_t)strtoll(begin,0,10);
+#endif
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE uint8_t strToU8(const char *str, const char **endptr)
+{
+ uint8_t ret;
+ const char *begin = skipWhiteSpace(str);
+
+ ret = (uint8_t)strtoul(begin, 0, 0);
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE uint16_t strToU16(const char *str, const char **endptr)
+{
+ uint16_t ret;
+ const char *end;
+ const char *begin = skipWhiteSpace(str);
+
+ end = skipNonWhiteSpace(begin);
+ if( !end )
+ end = begin + strlen(str);
+
+ if( strncmp(begin, "UINT16_MAX", (size_t)(end-begin)) == 0)
+ ret = UINT16_MAX;
+ else if( strncmp(begin, "PX_MAX_U16", (size_t)(end-begin)) == 0)
+ ret = UINT16_MAX;
+ else
+ ret = (uint16_t)strtoul(begin,0,0);
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE uint32_t strToU32(const char *str, const char **endptr)
+{
+ uint32_t ret;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ if( strncmp(begin, "UINT32_MAX", (size_t)(end-begin)) == 0)
+ ret = UINT32_MAX;
+ else if( strncmp(begin, "PX_U32_MAX", (size_t)(end-begin)) == 0)
+ ret = UINT32_MAX;
+ else
+ ret = (uint32_t)strtoul(begin,0,0);
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE uint64_t strToU64(const char *str, const char **endptr)
+{
+ uint64_t ret;
+ const char *begin;
+ begin = skipWhiteSpace(str);
+
+ //FIXME
+#ifdef _WIN32 //NV_WINDOWS, NV_XBOX
+ ret = (uint64_t)_strtoui64(begin,0,10);
+#else
+ ret = (uint64_t)strtoull(begin,0,10);
+#endif
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+#ifndef DEBUGGING_MISMATCHES
+#define DEBUGGING_MISMATCHES 0
+#endif
+
+PX_INLINE float strToF32(const char *str, const char **endptr)
+{
+ float ret;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ const uint32_t len = (uint32_t)(end - begin);
+
+ const char F32_MIN[] = "NV_MIN_F32";
+ const char F32_MAX[] = "NV_MAX_F32";
+ const char PX_F32_MIN[] = "PX_MIN_F32";
+ const char PX_F32_MAX[] = "PX_MAX_F32";
+
+ if( strncmp(begin, PX_F32_MIN, physx::PxMin(len, (uint32_t)(sizeof(PX_F32_MIN) - 1))) == 0)
+ ret = -PX_MAX_F32;
+ else if( strncmp(begin, PX_F32_MAX, physx::PxMin(len, (uint32_t)(sizeof(PX_F32_MAX) - 1))) == 0)
+ ret = PX_MAX_F32;
+ else if( strncmp(begin, F32_MIN, physx::PxMin(len, (uint32_t)(sizeof(F32_MIN) - 1))) == 0)
+ ret = -PX_MAX_F32;
+ else if( strncmp(begin, F32_MAX, physx::PxMin(len, (uint32_t)(sizeof(F32_MAX) - 1))) == 0)
+ ret = PX_MAX_F32;
+ else
+ {
+ ret = (float)strtof_fast(begin);
+ }
+
+#if DEBUGGING_MISMATCHES
+ float testRet = (float)atof(begin);
+ if( ret != testRet )
+ {
+ PX_ASSERT(0 && "Inaccurate float string");
+ }
+#endif
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+
+PX_INLINE double strToF64(const char *str, const char **endptr)
+{
+ double ret;
+ const char *begin = skipWhiteSpace(str);
+ const char *end = skipNonWhiteSpace(begin);
+
+ end = skipNonWhiteSpace(begin);
+
+ if( !end )
+ end = begin + strlen(str);
+
+ const uint32_t len = (const uint32_t)(end - begin);
+
+ const char F64_MIN[] = "PX_MIN_F364";
+ const char F64_MAX[] = "PX_MAX_F64";
+ const char PX_F64_MIN[] = "PX_MIN_F64";
+ const char PX_F64_MAX[] = "PX_MAX_F64";
+
+ if( strncmp(begin, F64_MIN, physx::PxMin(len, (uint32_t)(sizeof(F64_MIN) - 1))) == 0)
+ ret = -PX_MAX_F64;
+ else if( strncmp(begin, F64_MAX, physx::PxMin(len, (uint32_t)(sizeof(F64_MAX) - 1))) == 0)
+ ret = PX_MAX_F64;
+ else if( strncmp(begin, PX_F64_MIN, physx::PxMin(len, (uint32_t)(sizeof(PX_F64_MIN) - 1))) == 0)
+ ret = -PX_MAX_F64;
+ else if( strncmp(begin, PX_F64_MAX, physx::PxMin(len, (uint32_t)(sizeof(PX_F64_MAX) - 1))) == 0)
+ ret = PX_MAX_F64;
+ else
+ ret = (double)strtod_fast(begin);
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+
+ return ret;
+}
+
+PX_INLINE void strToF32s(float *v,uint32_t count,const char *str, const char**endptr)
+{
+ const char *begin = skipWhiteSpace(str);
+
+ if ( *begin == '(' ) begin++;
+ for (uint32_t i=0; i<count && *begin; i++)
+ {
+ v[i] = (float)strToF32(begin, &begin);
+ }
+
+ if( endptr )
+ *endptr = skipNonWhiteSpace(begin);
+}
+
+
+//////////////////////////
+// value to str functions
+//////////////////////////
+PX_INLINE const char * valueToStr( bool val, char *buf, uint32_t n )
+{
+ physx::shdfnd::snprintf(buf, n,"%s",val ? "true" : "false");
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( int8_t val, char *buf, uint32_t n )
+{
+ if( val == INT8_MIN )
+ physx::shdfnd::snprintf(buf, n,"%s","INT8_MIN" );
+ else if( val == INT8_MAX )
+ physx::shdfnd::snprintf(buf, n,"%s","INT8_MAX" );
+ else
+ physx::shdfnd::snprintf(buf, n, "%d", val);
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( int16_t val, char *buf, uint32_t n )
+{
+ if( val == INT16_MIN )
+ physx::shdfnd::snprintf(buf, n,"%s","INT16_MIN" );
+ else if( val == INT16_MAX )
+ physx::shdfnd::snprintf(buf, n,"%s","INT16_MAX" );
+ else
+ physx::shdfnd::snprintf(buf, n,"%d",val );
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( int32_t val, char *buf, uint32_t n )
+{
+ if( val == INT32_MIN )
+ physx::shdfnd::snprintf(buf, n,"%s","INT32_MIN" );
+ else if( val == INT32_MAX )
+ physx::shdfnd::snprintf(buf, n,"%s","INT32_MAX" );
+ else
+ physx::shdfnd::snprintf(buf, n,"%d",val );
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( int64_t val, char *buf, uint32_t n )
+{
+ physx::shdfnd::snprintf(buf, n,"%lld",val );
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( uint8_t val, char *buf, uint32_t n )
+{
+ physx::shdfnd::snprintf(buf, n, "%u", val);
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( uint16_t val, char *buf, uint32_t n )
+{
+ if( val == UINT16_MAX )
+ physx::shdfnd::snprintf(buf, n,"%s","UINT16_MAX" );
+ else
+ physx::shdfnd::snprintf(buf, n,"%u",val );
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( uint32_t val, char *buf, uint32_t n )
+{
+ if( val == UINT32_MAX )
+ physx::shdfnd::snprintf(buf, n,"%s","UINT32_MAX" );
+ else
+ physx::shdfnd::snprintf(buf, n,"%u",val );
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( uint64_t val, char *buf, uint32_t n )
+{
+ physx::shdfnd::snprintf(buf, n,"%llu",val );
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( float val, char *buf, uint32_t n )
+{
+ if( !physx::PxIsFinite(val) )
+ {
+ PX_ASSERT( 0 && "invalid floating point" );
+ physx::shdfnd::snprintf(buf, n,"%s","0" );
+ }
+ else if( val == -PX_MAX_F32 )
+ physx::shdfnd::snprintf(buf, n,"%s","PX_MIN_F32" );
+ else if( val == PX_MAX_F32 )
+ physx::shdfnd::snprintf(buf, n,"%s","PX_MAX_F32" );
+ else if ( val == 1 )
+ physx::shdfnd::strlcpy(buf, n, "1");
+ else if ( val == 0 )
+ physx::shdfnd::strlcpy(buf, n, "0");
+ else if ( val == - 1 )
+ physx::shdfnd::strlcpy(buf, n, "-1");
+ else
+ {
+ physx::shdfnd::snprintf(buf,n,"%.9g", (double)val ); // %g expects double
+ const char *dot = strchr(buf,'.');
+ const char *e = strchr(buf,'e');
+ if ( dot && !e )
+ {
+ int32_t len = (int32_t)strlen(buf);
+ char *foo = &buf[len-1];
+ while ( *foo == '0' ) foo--;
+ if ( *foo == '.' )
+ *foo = 0;
+ else
+ foo[1] = 0;
+ }
+ }
+ return buf;
+}
+
+PX_INLINE const char * valueToStr( double val, char *buf, uint32_t n )
+{
+ if( !physx::PxIsFinite(val) )
+ {
+ PX_ASSERT( 0 && "invalid floating point" );
+ physx::shdfnd::snprintf(buf, n,"%s","0" );
+ }
+ else if( val == -PX_MAX_F64 )
+ physx::shdfnd::snprintf(buf, n,"%s","PX_MIN_F64" );
+ else if( val == PX_MAX_F64 )
+ physx::shdfnd::snprintf(buf, n,"%s","PX_MAX_F64" );
+ else if ( val == 1 )
+ physx::shdfnd::strlcpy(buf, n, "1");
+ else if ( val == 0 )
+ physx::shdfnd::strlcpy(buf, n, "0");
+ else if ( val == - 1 )
+ physx::shdfnd::strlcpy(buf, n, "-1");
+ else
+ {
+ physx::shdfnd::snprintf(buf,n,"%.18g", val );
+ const char *dot = strchr(buf,'.');
+ const char *e = strchr(buf,'e');
+ if ( dot && !e )
+ {
+ int32_t len = (int32_t)strlen(buf);
+ char *foo = &buf[len-1];
+ while ( *foo == '0' ) foo--;
+ if ( *foo == '.' )
+ *foo = 0;
+ else
+ foo[1] = 0;
+ }
+ }
+ return buf;
+}
diff --git a/shared/filebuf/include/PsFileBuffer.h b/shared/filebuf/include/PsFileBuffer.h
new file mode 100644
index 0000000..2a09257
--- /dev/null
+++ b/shared/filebuf/include/PsFileBuffer.h
@@ -0,0 +1,250 @@
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of NVIDIA CORPORATION nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
+
+#ifndef PSFILEBUFFER_PSFILEBUFFER_H
+#define PSFILEBUFFER_PSFILEBUFFER_H
+
+#include "filebuf/PxFileBuf.h"
+
+#include "Ps.h"
+#include "PsUserAllocated.h"
+#include <stdio.h>
+
+namespace physx
+{
+namespace general_PxIOStream2
+{
+ using namespace shdfnd;
+
+//Use this class if you want to use your own allocator
+class PxFileBufferBase : public PxFileBuf
+{
+public:
+ PxFileBufferBase(const char *fileName,OpenMode mode)
+ {
+ mOpenMode = mode;
+ mFph = NULL;
+ mFileLength = 0;
+ mSeekRead = 0;
+ mSeekWrite = 0;
+ mSeekCurrent = 0;
+ switch ( mode )
+ {
+ case OPEN_READ_ONLY:
+ mFph = fopen(fileName,"rb");
+ break;
+ case OPEN_WRITE_ONLY:
+ mFph = fopen(fileName,"wb");
+ break;
+ case OPEN_READ_WRITE_NEW:
+ mFph = fopen(fileName,"wb+");
+ break;
+ case OPEN_READ_WRITE_EXISTING:
+ mFph = fopen(fileName,"rb+");
+ break;
+ case OPEN_FILE_NOT_FOUND:
+ break;
+ }
+ if ( mFph )
+ {
+ fseek(mFph,0L,SEEK_END);
+ mFileLength = static_cast<uint32_t>(ftell(mFph));
+ fseek(mFph,0L,SEEK_SET);
+ }
+ else
+ {
+ mOpenMode = OPEN_FILE_NOT_FOUND;
+ }
+ }
+
+ virtual ~PxFileBufferBase()
+ {
+ close();
+ }
+
+ virtual void close()
+ {
+ if( mFph )
+ {
+ fclose(mFph);
+ mFph = 0;
+ }
+ }
+
+ virtual SeekType isSeekable(void) const
+ {
+ return mSeekType;
+ }
+
+ virtual uint32_t read(void* buffer, uint32_t size)
+ {
+ uint32_t ret = 0;
+ if ( mFph )
+ {
+ setSeekRead();
+ ret = static_cast<uint32_t>(::fread(buffer,1,size,mFph));
+ mSeekRead+=ret;
+ mSeekCurrent+=ret;
+ }
+ return ret;
+ }
+
+ virtual uint32_t peek(void* buffer, uint32_t size)
+ {
+ uint32_t ret = 0;
+ if ( mFph )
+ {
+ uint32_t loc = tellRead();
+ setSeekRead();
+ ret = static_cast<uint32_t>(::fread(buffer,1,size,mFph));
+ mSeekCurrent+=ret;
+ seekRead(loc);
+ }
+ return ret;
+ }
+
+ virtual uint32_t write(const void* buffer, uint32_t size)
+ {
+ uint32_t ret = 0;
+ if ( mFph )
+ {
+ setSeekWrite();
+ ret = static_cast<uint32_t>(::fwrite(buffer,1,size,mFph));
+ mSeekWrite+=ret;
+ mSeekCurrent+=ret;
+ if ( mSeekWrite > mFileLength )
+ {
+ mFileLength = mSeekWrite;
+ }
+ }
+ return ret;
+ }
+
+ virtual uint32_t tellRead(void) const
+ {
+ return mSeekRead;
+ }
+
+ virtual uint32_t tellWrite(void) const
+ {
+ return mSeekWrite;
+ }
+
+ virtual uint32_t seekRead(uint32_t loc)
+ {
+ mSeekRead = loc;
+ if ( mSeekRead > mFileLength )
+ {
+ mSeekRead = mFileLength;
+ }
+ return mSeekRead;
+ }
+
+ virtual uint32_t seekWrite(uint32_t loc)
+ {
+ mSeekWrite = loc;
+ if ( mSeekWrite > mFileLength )
+ {
+ mSeekWrite = mFileLength;
+ }
+ return mSeekWrite;
+ }
+
+ virtual void flush(void)
+ {
+ if ( mFph )
+ {
+ ::fflush(mFph);
+ }
+ }
+
+ virtual OpenMode getOpenMode(void) const
+ {
+ return mOpenMode;
+ }
+
+ virtual uint32_t getFileLength(void) const
+ {
+ return mFileLength;
+ }
+
+private:
+ // Moves the actual file pointer to the current read location
+ void setSeekRead(void)
+ {
+ if ( mSeekRead != mSeekCurrent && mFph )
+ {
+ if ( mSeekRead >= mFileLength )
+ {
+ fseek(mFph,0L,SEEK_END);
+ }
+ else
+ {
+ fseek(mFph,static_cast<long>(mSeekRead),SEEK_SET);
+ }
+ mSeekCurrent = mSeekRead = static_cast<uint32_t>(ftell(mFph));
+ }
+ }
+ // Moves the actual file pointer to the current write location
+ void setSeekWrite(void)
+ {
+ if ( mSeekWrite != mSeekCurrent && mFph )
+ {
+ if ( mSeekWrite >= mFileLength )
+ {
+ fseek(mFph,0L,SEEK_END);
+ }
+ else
+ {
+ fseek(mFph,static_cast<long>(mSeekWrite),SEEK_SET);
+ }
+ mSeekCurrent = mSeekWrite = static_cast<uint32_t>(ftell(mFph));
+ }
+ }
+
+
+ FILE *mFph;
+ uint32_t mSeekRead;
+ uint32_t mSeekWrite;
+ uint32_t mSeekCurrent;
+ uint32_t mFileLength;
+ SeekType mSeekType;
+ OpenMode mOpenMode;
+};
+
+//Use this class if you want to use PhysX memory allocator
+class PsFileBuffer: public PxFileBufferBase, public UserAllocated
+{
+public:
+ PsFileBuffer(const char *fileName,OpenMode mode): PxFileBufferBase(fileName, mode) {}
+};
+
+}
+using namespace general_PxIOStream2;
+}
+
+#endif // PSFILEBUFFER_PSFILEBUFFER_H
diff --git a/shared/filebuf/include/PsIOStream.h b/shared/filebuf/include/PsIOStream.h
new file mode 100644
index 0000000..54f9b89
--- /dev/null
+++ b/shared/filebuf/include/PsIOStream.h
@@ -0,0 +1,137 @@
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of NVIDIA CORPORATION nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
+
+#ifndef PSFILEBUFFER_PSIOSTREAM_H
+#define PSFILEBUFFER_PSIOSTREAM_H
+
+/*!
+\file
+\brief PsIOStream class
+*/
+#include "filebuf/PxFileBuf.h"
+
+#include "Ps.h"
+#include "PsString.h"
+#include <string.h>
+#include <stdlib.h>
+#include "PsAsciiConversion.h"
+
+#define safePrintf physx::shdfnd::snprintf
+
+PX_PUSH_PACK_DEFAULT
+
+namespace physx
+{
+ namespace general_PxIOStream2
+ {
+
+/**
+\brief A wrapper class for physx::PxFileBuf that provides both binary and ASCII streaming capabilities
+*/
+class PsIOStream
+{
+ static const uint32_t MAX_STREAM_STRING = 1024;
+public:
+ /**
+ \param [in] stream the physx::PxFileBuf through which all reads and writes will be performed
+ \param [in] streamLen the length of the input data stream when de-serializing
+ */
+ PsIOStream(physx::PxFileBuf &stream,uint32_t streamLen) : mBinary(true), mStreamLen(streamLen), mStream(stream) { }
+ ~PsIOStream(void) { }
+
+ /**
+ \brief Set the stream to binary or ASCII
+
+ \param [in] state if true, stream is binary, if false, stream is ASCII
+
+ If the stream is binary, stream access is passed straight through to the respecitve
+ physx::PxFileBuf methods. If the stream is ASCII, all stream reads and writes are converted to
+ human readable ASCII.
+ */
+ PX_INLINE void setBinary(bool state) { mBinary = state; }
+ PX_INLINE bool getBinary() { return mBinary; }
+
+ PX_INLINE PsIOStream& operator<<(bool v);
+ PX_INLINE PsIOStream& operator<<(char c);
+ PX_INLINE PsIOStream& operator<<(uint8_t v);
+ PX_INLINE PsIOStream& operator<<(int8_t v);
+
+ PX_INLINE PsIOStream& operator<<(const char *c);
+ PX_INLINE PsIOStream& operator<<(int64_t v);
+ PX_INLINE PsIOStream& operator<<(uint64_t v);
+ PX_INLINE PsIOStream& operator<<(double v);
+ PX_INLINE PsIOStream& operator<<(float v);
+ PX_INLINE PsIOStream& operator<<(uint32_t v);
+ PX_INLINE PsIOStream& operator<<(int32_t v);
+ PX_INLINE PsIOStream& operator<<(uint16_t v);
+ PX_INLINE PsIOStream& operator<<(int16_t v);
+ PX_INLINE PsIOStream& operator<<(const physx::PxVec3 &v);
+ PX_INLINE PsIOStream& operator<<(const physx::PxQuat &v);
+ PX_INLINE PsIOStream& operator<<(const physx::PxBounds3 &v);
+
+ PX_INLINE PsIOStream& operator>>(const char *&c);
+ PX_INLINE PsIOStream& operator>>(bool &v);
+ PX_INLINE PsIOStream& operator>>(char &c);
+ PX_INLINE PsIOStream& operator>>(uint8_t &v);
+ PX_INLINE PsIOStream& operator>>(int8_t &v);
+ PX_INLINE PsIOStream& operator>>(int64_t &v);
+ PX_INLINE PsIOStream& operator>>(uint64_t &v);
+ PX_INLINE PsIOStream& operator>>(double &v);
+ PX_INLINE PsIOStream& operator>>(float &v);
+ PX_INLINE PsIOStream& operator>>(uint32_t &v);
+ PX_INLINE PsIOStream& operator>>(int32_t &v);
+ PX_INLINE PsIOStream& operator>>(uint16_t &v);
+ PX_INLINE PsIOStream& operator>>(int16_t &v);
+ PX_INLINE PsIOStream& operator>>(physx::PxVec3 &v);
+ PX_INLINE PsIOStream& operator>>(physx::PxQuat &v);
+ PX_INLINE PsIOStream& operator>>(physx::PxBounds3 &v);
+
+ uint32_t getStreamLen(void) const { return mStreamLen; }
+
+ physx::PxFileBuf& getStream(void) { return mStream; }
+
+ PX_INLINE void storeString(const char *c,bool zeroTerminate=false);
+
+private:
+ PsIOStream& operator=( const PsIOStream& );
+
+
+ bool mBinary; // true if we are serializing binary data. Otherwise, everything is assumed converted to ASCII
+ uint32_t mStreamLen; // the length of the input data stream when de-serializing.
+ physx::PxFileBuf &mStream;
+ char mReadString[MAX_STREAM_STRING]; // a temp buffer for streaming strings on input.
+};
+
+#include "PsIOStream.inl" // inline methods...
+
+ } // end of namespace
+ using namespace general_PxIOStream2;
+} // end of physx namespace
+
+PX_POP_PACK
+
+#endif // PSFILEBUFFER_PSIOSTREAM_H
diff --git a/shared/filebuf/include/PsIOStream.inl b/shared/filebuf/include/PsIOStream.inl
new file mode 100644
index 0000000..f12ef68
--- /dev/null
+++ b/shared/filebuf/include/PsIOStream.inl
@@ -0,0 +1,415 @@
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of NVIDIA CORPORATION nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
+
+/*!
+\file
+\brief PsIOStream inline implementation
+*/
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(bool v)
+{
+ if ( mBinary )
+ {
+ mStream.storeByte((uint8_t)v);
+ }
+ else
+ {
+ char scratch[6];
+ storeString( physx::PxAsc::valueToStr(v, scratch, 6) );
+ }
+ return *this;
+}
+
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(char c)
+{
+ mStream.storeByte((uint8_t)c);
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(uint8_t c)
+{
+ if ( mBinary )
+ {
+ mStream.storeByte((uint8_t)c);
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(c, scratch, physx::PxAsc::IntStrLen) );
+ }
+
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(int8_t c)
+{
+ if ( mBinary )
+ {
+ mStream.storeByte((uint8_t)c);
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(c, scratch, physx::PxAsc::IntStrLen) );
+ }
+
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(const char *c)
+{
+ if ( mBinary )
+ {
+ c = c ? c : ""; // it it is a null pointer, assign it to an empty string.
+ uint32_t len = (uint32_t)strlen(c);
+ PX_ASSERT( len < (MAX_STREAM_STRING-1));
+ if ( len > (MAX_STREAM_STRING-1) )
+ {
+ len = MAX_STREAM_STRING-1;
+ }
+ mStream.storeDword(len);
+ if ( len )
+ mStream.write(c,len);
+ }
+ else
+ {
+ storeString(c);
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(uint64_t v)
+{
+ if ( mBinary )
+ {
+ mStream.storeDouble( (double) v );
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) );
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(int64_t v)
+{
+ if ( mBinary )
+ {
+ mStream.storeDouble( (double) v );
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) );
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(double v)
+{
+ if ( mBinary )
+ {
+ mStream.storeDouble( (double) v );
+ }
+ else
+ {
+ char scratch[physx::PxAsc::PxF64StrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::PxF64StrLen) );
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(float v)
+{
+ if ( mBinary )
+ {
+ mStream.storeFloat(v);
+ }
+ else
+ {
+ char scratch[physx::PxAsc::PxF32StrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::PxF32StrLen) );
+
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(uint32_t v)
+{
+ if ( mBinary )
+ {
+ mStream.storeDword(v);
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) );
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(int32_t v)
+{
+ if ( mBinary )
+ {
+ mStream.storeDword( (uint32_t) v );
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) );
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(uint16_t v)
+{
+ if ( mBinary )
+ {
+ mStream.storeWord(v);
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) );
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(int16_t v)
+{
+ if ( mBinary )
+ {
+ mStream.storeWord( (uint16_t) v );
+ }
+ else
+ {
+ char scratch[physx::PxAsc::IntStrLen];
+ storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) );
+ }
+ return *this;
+}
+
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(uint32_t &v)
+{
+ if ( mBinary )
+ {
+ v = mStream.readDword();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(char &v)
+{
+ if ( mBinary )
+ {
+ v = (char)mStream.readByte();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(uint8_t &v)
+{
+ if ( mBinary )
+ {
+ v = mStream.readByte();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(int8_t &v)
+{
+ if ( mBinary )
+ {
+ v = (int8_t)mStream.readByte();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(int64_t &v)
+{
+ if ( mBinary )
+ {
+ v = mStream.readDword();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(uint64_t &v)
+{
+ if ( mBinary )
+ {
+ v = (uint64_t)mStream.readDouble();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(double &v)
+{
+ if ( mBinary )
+ {
+ v = mStream.readDouble();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(float &v)
+{
+ if ( mBinary )
+ {
+ v = mStream.readFloat();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(int32_t &v)
+{
+ if ( mBinary )
+ {
+ v = (int32_t)mStream.readDword();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(uint16_t &v)
+{
+ if ( mBinary )
+ {
+ v = mStream.readWord();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(int16_t &v)
+{
+ if ( mBinary )
+ {
+ v = (int16_t)mStream.readWord();
+ }
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(bool &v)
+{
+ int8_t iv;
+ iv = (int8_t)mStream.readByte();
+ v = iv ? true : false;
+ return *this;
+}
+
+#define NX_IOSTREAM_COMMA_SEPARATOR if(!mBinary) *this << ' ';
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(const physx::PxVec3 &v)
+{
+ *this << v.x;
+ NX_IOSTREAM_COMMA_SEPARATOR;
+ *this << v.y;
+ NX_IOSTREAM_COMMA_SEPARATOR;
+ *this << v.z;
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(const physx::PxQuat &v)
+{
+ *this << v.x;
+ NX_IOSTREAM_COMMA_SEPARATOR;
+ *this << v.y;
+ NX_IOSTREAM_COMMA_SEPARATOR;
+ *this << v.z;
+ NX_IOSTREAM_COMMA_SEPARATOR;
+ *this << v.w;
+ return *this;
+}
+
+
+PX_INLINE PsIOStream& PsIOStream::operator<<(const physx::PxBounds3 &v)
+{
+ *this << v.minimum;
+ NX_IOSTREAM_COMMA_SEPARATOR;
+ *this << v.maximum;
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(physx::PxVec3 &v)
+{
+ *this >> v.x;
+ *this >> v.y;
+ *this >> v.z;
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(physx::PxQuat &v)
+{
+ *this>>v.x;
+ *this>>v.y;
+ *this>>v.z;
+ *this>>v.w;
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(physx::PxBounds3 &v)
+{
+ *this >> v.minimum;
+ *this >> v.maximum;
+ return *this;
+}
+
+PX_INLINE PsIOStream& PsIOStream::operator>>(const char *&str)
+{
+ str = NULL; // by default no string streamed...
+ if ( mBinary )
+ {
+ uint32_t len=0;
+ *this >> len;
+
+ PX_ASSERT( len < (MAX_STREAM_STRING-1) );
+ if ( len < (MAX_STREAM_STRING-1) )
+ {
+ mStream.read(mReadString,len);
+ mReadString[len] = 0;
+ str = mReadString;
+ }
+ }
+ return *this;
+}
+
+
+PX_INLINE void PsIOStream::storeString(const char *c,bool zeroTerminate)
+{
+ while ( *c )
+ {
+ mStream.storeByte((uint8_t)*c);
+ c++;
+ }
+ if ( zeroTerminate )
+ {
+ mStream.storeByte(0);
+ }
+}
diff --git a/shared/filebuf/include/PsMemoryBuffer.h b/shared/filebuf/include/PsMemoryBuffer.h
new file mode 100644
index 0000000..f708819
--- /dev/null
+++ b/shared/filebuf/include/PsMemoryBuffer.h
@@ -0,0 +1,449 @@
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of NVIDIA CORPORATION nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
+
+#ifndef PSFILEBUFFER_PSMEMORYBUFFER_H
+#define PSFILEBUFFER_PSMEMORYBUFFER_H
+
+#include "Ps.h"
+#include "PsUserAllocated.h"
+#include "PsAlignedMalloc.h"
+#include "filebuf/PxFileBuf.h"
+#include "foundation/PxAssert.h"
+
+namespace physx
+{
+namespace general_PxIOStream2
+{
+ using namespace shdfnd;
+
+ const uint32_t BUFFER_SIZE_DEFAULT = 4096;
+
+//Use this class if you want to use your own allocator
+template<class Allocator>
+class PxMemoryBufferBase : public PxFileBuf, public Allocator
+{
+ PX_NOCOPY(PxMemoryBufferBase)
+ void init(const void *readMem, uint32_t readLen)
+ {
+ mAllocator = this;
+
+ mReadBuffer = mReadLoc = static_cast<const uint8_t *>(readMem);
+ mReadStop = &mReadLoc[readLen];
+
+ mWriteBuffer = mWriteLoc = mWriteStop = NULL;
+ mWriteBufferSize = 0;
+ mDefaultWriteBufferSize = BUFFER_SIZE_DEFAULT;
+
+ mOpenMode = OPEN_READ_ONLY;
+ mSeekType = SEEKABLE_READ;
+ }
+
+ void init(uint32_t defaultWriteBufferSize)
+ {
+ mAllocator = this;
+
+ mReadBuffer = mReadLoc = mReadStop = NULL;
+
+ mWriteBuffer = mWriteLoc = mWriteStop = NULL;
+ mWriteBufferSize = 0;
+ mDefaultWriteBufferSize = defaultWriteBufferSize;
+
+ mOpenMode = OPEN_READ_WRITE_NEW;
+ mSeekType = SEEKABLE_READWRITE;
+ }
+
+public:
+ PxMemoryBufferBase(const void *readMem,uint32_t readLen)
+ {
+ init(readMem, readLen);
+ }
+
+ PxMemoryBufferBase(const void *readMem,uint32_t readLen, const Allocator &alloc): Allocator(alloc)
+ {
+ init(readMem, readLen);
+ }
+
+ PxMemoryBufferBase(uint32_t defaultWriteBufferSize = BUFFER_SIZE_DEFAULT)
+ {
+ init(defaultWriteBufferSize);
+ }
+
+ PxMemoryBufferBase(uint32_t defaultWriteBufferSize, const Allocator &alloc): Allocator(alloc)
+ {
+ init(defaultWriteBufferSize);
+ }
+
+ virtual ~PxMemoryBufferBase(void)
+ {
+ reset();
+ }
+
+ void setAllocator(Allocator *allocator)
+ {
+ mAllocator = allocator;
+ }
+
+ void initWriteBuffer(uint32_t size)
+ {
+ if ( mWriteBuffer == NULL )
+ {
+ if ( size < mDefaultWriteBufferSize ) size = mDefaultWriteBufferSize;
+ mWriteBuffer = static_cast<uint8_t *>(mAllocator->allocate(size));
+ PX_ASSERT( mWriteBuffer );
+ mWriteLoc = mWriteBuffer;
+ mWriteStop = &mWriteBuffer[size];
+ mWriteBufferSize = size;
+ mReadBuffer = mWriteBuffer;
+ mReadStop = &mWriteBuffer[size];
+ mReadLoc = mWriteBuffer;
+ }
+ }
+
+ void reset(void)
+ {
+ mAllocator->deallocate(mWriteBuffer);
+ mWriteBuffer = NULL;
+ mWriteBufferSize = 0;
+ mWriteLoc = NULL;
+ mWriteStop = NULL;
+ mReadBuffer = NULL;
+ mReadStop = NULL;
+ mReadLoc = NULL;
+ }
+
+ virtual OpenMode getOpenMode(void) const
+ {
+ return mOpenMode;
+ }
+
+
+ SeekType isSeekable(void) const
+ {
+ return mSeekType;
+ }
+
+ virtual uint32_t read(void* buffer, uint32_t size)
+ {
+ if ( (mReadLoc+size) > mReadStop )
+ {
+ size = uint32_t(mReadStop - mReadLoc);
+ }
+ if ( size != 0 )
+ {
+ memmove(buffer,mReadLoc,size);
+ mReadLoc+=size;
+ }
+ return size;
+ }
+
+ virtual uint32_t peek(void* buffer, uint32_t size)
+ {
+ if ( (mReadLoc+size) > mReadStop )
+ {
+ size = uint32_t(mReadStop - mReadLoc);
+ }
+ if ( size != 0 )
+ {
+ memmove(buffer,mReadLoc,size);
+ }
+ return size;
+ }
+
+ virtual uint32_t write(const void* buffer, uint32_t size)
+ {
+ PX_ASSERT( mOpenMode == OPEN_READ_WRITE_NEW );
+ if ( mOpenMode == OPEN_READ_WRITE_NEW )
+ {
+ if ( (mWriteLoc+size) > mWriteStop )
+ growWriteBuffer(size);
+ memmove(mWriteLoc,buffer,size);
+ mWriteLoc+=size;
+ mReadStop = mWriteLoc;
+ }
+ else
+ {
+ size = 0;
+ }
+ return size;
+ }
+
+ PX_INLINE const uint8_t * getReadLoc(void) const { return mReadLoc; }
+ PX_INLINE void advanceReadLoc(uint32_t len)
+ {
+ PX_ASSERT(mReadBuffer);
+ if ( mReadBuffer )
+ {
+ mReadLoc+=len;
+ if ( mReadLoc >= mReadStop )
+ {
+ mReadLoc = mReadStop;
+ }
+ }
+ }
+
+ virtual uint32_t tellRead(void) const
+ {
+ uint32_t ret=0;
+
+ if ( mReadBuffer )
+ {
+ ret = uint32_t(mReadLoc-mReadBuffer);
+ }
+ return ret;
+ }
+
+ virtual uint32_t tellWrite(void) const
+ {
+ return uint32_t(mWriteLoc-mWriteBuffer);
+ }
+
+ virtual uint32_t seekRead(uint32_t loc)
+ {
+ uint32_t ret = 0;
+ PX_ASSERT(mReadBuffer);
+ if ( mReadBuffer )
+ {
+ mReadLoc = &mReadBuffer[loc];
+ if ( mReadLoc >= mReadStop )
+ {
+ mReadLoc = mReadStop;
+ }
+ ret = uint32_t(mReadLoc-mReadBuffer);
+ }
+ return ret;
+ }
+
+ virtual uint32_t seekWrite(uint32_t loc)
+ {
+ uint32_t ret = 0;
+ PX_ASSERT( mOpenMode == OPEN_READ_WRITE_NEW );
+ if ( mWriteBuffer )
+ {
+ if ( loc > mWriteBufferSize )
+ {
+ mWriteLoc = mWriteStop;
+ growWriteBuffer(loc - mWriteBufferSize);
+ }
+ mWriteLoc = &mWriteBuffer[loc];
+ ret = uint32_t(mWriteLoc-mWriteBuffer);
+ }
+ return ret;
+ }
+
+ virtual void flush(void)
+ {
+
+ }
+
+ virtual uint32_t getFileLength(void) const
+ {
+ uint32_t ret = 0;
+ if ( mReadBuffer )
+ {
+ ret = uint32_t(mReadStop-mReadBuffer);
+ }
+ else if ( mWriteBuffer )
+ {
+ ret = uint32_t(mWriteLoc-mWriteBuffer);
+ }
+ return ret;
+ }
+
+ uint32_t getWriteBufferSize(void) const
+ {
+ return uint32_t(mWriteLoc-mWriteBuffer);
+ }
+
+ void setWriteLoc(uint8_t *writeLoc)
+ {
+ PX_ASSERT(writeLoc >= mWriteBuffer && writeLoc < mWriteStop );
+ mWriteLoc = writeLoc;
+ mReadStop = mWriteLoc;
+ }
+
+ const uint8_t * getWriteBuffer(void) const
+ {
+ return mWriteBuffer;
+ }
+
+ /**
+ * Attention: if you use aligned allocator you cannot free memory with PX_FREE macros instead use deallocate method from base
+ */
+ uint8_t * getWriteBufferOwnership(uint32_t &dataLen) // return the write buffer, and zero it out, the caller is taking ownership of the memory
+ {
+ uint8_t *ret = mWriteBuffer;
+ dataLen = uint32_t(mWriteLoc-mWriteBuffer);
+ mWriteBuffer = NULL;
+ mWriteLoc = NULL;
+ mWriteStop = NULL;
+ mWriteBufferSize = 0;
+ return ret;
+ }
+
+
+ void alignRead(uint32_t a)
+ {
+ uint32_t loc = tellRead();
+ uint32_t aloc = ((loc+(a-1))/a)*a;
+ if ( aloc != loc )
+ {
+ seekRead(aloc);
+ }
+ }
+
+ void alignWrite(uint32_t a)
+ {
+ uint32_t loc = tellWrite();
+ uint32_t aloc = ((loc+(a-1))/a)*a;
+ if ( aloc != loc )
+ {
+ seekWrite(aloc);
+ }
+ }
+
+private:
+
+
+ // double the size of the write buffer or at least as large as the 'size' value passed in.
+ void growWriteBuffer(uint32_t size)
+ {
+ if ( mWriteBuffer == NULL )
+ {
+ if ( size < mDefaultWriteBufferSize ) size = mDefaultWriteBufferSize;
+ initWriteBuffer(size);
+ }
+ else
+ {
+ uint32_t oldWriteIndex = uint32_t(mWriteLoc - mWriteBuffer);
+ uint32_t newSize = mWriteBufferSize*2;
+ uint32_t avail = newSize-oldWriteIndex;
+ if ( size >= avail ) newSize = newSize+size;
+ uint8_t *writeBuffer = static_cast<uint8_t *>(mAllocator->allocate(newSize));
+ PX_ASSERT( writeBuffer );
+ memmove(writeBuffer,mWriteBuffer,mWriteBufferSize);
+ mAllocator->deallocate(mWriteBuffer);
+ mWriteBuffer = writeBuffer;
+ mWriteBufferSize = newSize;
+ mWriteLoc = &mWriteBuffer[oldWriteIndex];
+ mWriteStop = &mWriteBuffer[mWriteBufferSize];
+ uint32_t oldReadLoc = uint32_t(mReadLoc-mReadBuffer);
+ mReadBuffer = mWriteBuffer;
+ mReadStop = mWriteLoc;
+ mReadLoc = &mReadBuffer[oldReadLoc];
+ }
+ }
+
+ const uint8_t *mReadBuffer;
+ const uint8_t *mReadLoc;
+ const uint8_t *mReadStop;
+
+ uint8_t *mWriteBuffer;
+ uint8_t *mWriteLoc;
+ uint8_t *mWriteStop;
+
+ uint32_t mWriteBufferSize;
+ uint32_t mDefaultWriteBufferSize;
+ Allocator *mAllocator;
+ OpenMode mOpenMode;
+ SeekType mSeekType;
+
+};
+
+class PxMemoryBufferAllocator
+{
+public:
+ PxMemoryBufferAllocator(uint32_t a = 0) : alignment(a) {}
+
+ virtual void * allocate(uint32_t size)
+ {
+ switch(alignment)
+ {
+ case 0:
+ return PX_ALLOC(size, PX_DEBUG_EXP("PxMemoryBufferAllocator"));
+ case 16 :
+ return physx::AlignedAllocator<16>().allocate(size, __FILE__, __LINE__);
+ case 32 :
+ return physx::AlignedAllocator<32>().allocate(size, __FILE__, __LINE__);
+ case 64 :
+ return physx::AlignedAllocator<64>().allocate(size, __FILE__, __LINE__);
+ case 128 :
+ return physx::AlignedAllocator<128>().allocate(size, __FILE__, __LINE__);
+ default :
+ PX_ASSERT(0);
+ }
+ return NULL;
+ }
+ virtual void deallocate(void *mem)
+ {
+ switch(alignment)
+ {
+ case 0:
+ PX_FREE(mem);
+ break;
+ case 16 :
+ physx::AlignedAllocator<16>().deallocate(mem);
+ break;
+ case 32 :
+ physx::AlignedAllocator<32>().deallocate(mem);
+ break;
+ case 64 :
+ physx::AlignedAllocator<64>().deallocate(mem);
+ break;
+ case 128 :
+ physx::AlignedAllocator<128>().deallocate(mem);
+ break;
+ default :
+ PX_ASSERT(0);
+ }
+ }
+ virtual ~PxMemoryBufferAllocator(void) {}
+private:
+ PxMemoryBufferAllocator& operator=(const PxMemoryBufferAllocator&);
+
+ const uint32_t alignment;
+};
+
+//Use this class if you want to use PhysX memory allocator
+class PsMemoryBuffer: public PxMemoryBufferBase<PxMemoryBufferAllocator>, public UserAllocated
+{
+ PX_NOCOPY(PsMemoryBuffer)
+ typedef PxMemoryBufferBase<PxMemoryBufferAllocator> BaseClass;
+
+public:
+ PsMemoryBuffer(const void *readMem,uint32_t readLen): BaseClass(readMem, readLen) {}
+ PsMemoryBuffer(const void *readMem,uint32_t readLen, uint32_t alignment): BaseClass(readMem, readLen, PxMemoryBufferAllocator(alignment)) {}
+
+ PsMemoryBuffer(uint32_t defaultWriteBufferSize=BUFFER_SIZE_DEFAULT): BaseClass(defaultWriteBufferSize) {}
+ PsMemoryBuffer(uint32_t defaultWriteBufferSize,uint32_t alignment): BaseClass(defaultWriteBufferSize, PxMemoryBufferAllocator(alignment)) {}
+};
+
+}
+using namespace general_PxIOStream2;
+}
+
+#endif // PSFILEBUFFER_PSMEMORYBUFFER_H
+
diff --git a/target_platform_deps.xml b/target_platform_deps.xml
index ac5e2d7..7da1bb3 100755
--- a/target_platform_deps.xml
+++ b/target_platform_deps.xml
@@ -32,13 +32,14 @@
<dependency name="BoostMultiprecision">
<package name="BoostMultiprecision" version="1.64.0.1" platforms="win.* linux"/>
</dependency>
-
- <dependency name="PhysX">
- <package name="PhysX-${platform}" version="3.4.24990349" platforms="win.*.vc140"/>
- <package name="PhysX-${platform}" version="3.4.24990349" platforms="win.*.vc150"/>
- <package name="PhysX-linux64" version="3.4.24990349" platforms="linux"/>
+ <dependency name="physxsdk">
+ <package name="physxsdk" version="4.1.trunk.26400730-windows-x86_64" platforms="win.*" />
+ <package name="physxsdk" version="4.1.trunk.26400730-linux-x86_64" platforms="linux*" />
+ </dependency>
+ <dependency name="pxshared">
+ <package name="pxshared" version="1.1.trunk.25954437-windows-x86_64" platforms="win.*" />
+ <package name="pxshared" version="1.1.trunk.25954437-linux-x86_64" platforms="linux*" />
</dependency>
-
<dependency name="googletest">
<package name="googletest-win" version="1.4.0.2" platforms="win.*"/>
<package name="googletest-linux-x86_64" version="1.8.0.1" platforms="linux"/>
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 6058e5d..0d3d061 100755
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -62,9 +62,9 @@ ENDIF()
IF (APPEND_CONFIG_NAME)
MESSAGE("Appending config to output names")
- SET(CMAKE_DEBUG_POSTFIX "DEBUG")
- SET(CMAKE_PROFILE_POSTFIX "PROFILE")
- SET(CMAKE_CHECKED_POSTFIX "CHECKED")
+ SET(CMAKE_DEBUG_POSTFIX "")
+ SET(CMAKE_PROFILE_POSTFIX "")
+ SET(CMAKE_CHECKED_POSTFIX "")
SET(CMAKE_RELEASE_POSTFIX "")
ENDIF()
diff --git a/test/compiler/cmake/BlastPerfTests.cmake b/test/compiler/cmake/BlastPerfTests.cmake
index 2671ce1..660f47a 100755
--- a/test/compiler/cmake/BlastPerfTests.cmake
+++ b/test/compiler/cmake/BlastPerfTests.cmake
@@ -12,7 +12,8 @@ SET(COMMON_SOURCE_DIR ${BLAST_ROOT_DIR}/sdk/common)
SET(SOLVER_SOURCE_DIR ${BLAST_ROOT_DIR}/sdk/lowlevel/source)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxSharedSDK_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(GoogleTestNV $ENV{PM_GoogleTest-nv_VERSION} REQUIRED)
@@ -83,11 +84,11 @@ ADD_EXECUTABLE(BlastPerfTests
${SDK_SOLVER_FILES}
)
-set_target_properties(BlastPerfTests
- PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}
- CHECKED_POSTFIX ${CMAKE_CHECKED_POSTFIX}
-# RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}
- PROFILE_POSTFIX ${CMAKE_PROFILE_POSTFIX}
+set_target_properties(BlastPerfTests PROPERTIES
+ DEBUG_POSTFIX "_${LIBPATH_SUFFIX}"
+ CHECKED_POSTFIX "_${LIBPATH_SUFFIX}"
+ RELEASE_POSTFIX "_${LIBPATH_SUFFIX}"
+ PROFILE_POSTFIX "_${LIBPATH_SUFFIX}"
)
@@ -125,6 +126,18 @@ SET_TARGET_PROPERTIES(BlastPerfTests PROPERTIES
COMPILE_PDB_NAME_CHECKED "BlastPerfTests${CMAKE_CHECKED_POSTFIX}"
COMPILE_PDB_NAME_PROFILE "BlastPerfTests${CMAKE_PROFILE_POSTFIX}"
COMPILE_PDB_NAME_RELEASE "BlastPerfTests${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
#TARGET_COMPILE_OPTIONS(BlastPerfTests PRIVATE /wd4005 /wd4244)
diff --git a/test/compiler/cmake/BlastUnitTests.cmake b/test/compiler/cmake/BlastUnitTests.cmake
index 82779e6..8ea87c3 100755
--- a/test/compiler/cmake/BlastUnitTests.cmake
+++ b/test/compiler/cmake/BlastUnitTests.cmake
@@ -13,8 +13,8 @@ SET(SOLVER_SOURCE_DIR ${BLAST_ROOT_DIR}/sdk/lowlevel/source)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxSharedSDK_VERSION} REQUIRED)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysXSDK_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(GoogleTestNV $ENV{PM_googletest_VERSION} REQUIRED)
@@ -95,11 +95,11 @@ ADD_EXECUTABLE(BlastUnitTests
${SDK_SOLVER_FILES}
)
-set_target_properties(BlastUnitTests
- PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}
- CHECKED_POSTFIX ${CMAKE_CHECKED_POSTFIX}
-# RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}
- PROFILE_POSTFIX ${CMAKE_PROFILE_POSTFIX}
+set_target_properties(BlastUnitTests PROPERTIES
+ DEBUG_POSTFIX "_${LIBPATH_SUFFIX}"
+ CHECKED_POSTFIX "_${LIBPATH_SUFFIX}"
+ RELEASE_POSTFIX "_${LIBPATH_SUFFIX}"
+ PROFILE_POSTFIX "_${LIBPATH_SUFFIX}"
)
@@ -141,6 +141,18 @@ SET_TARGET_PROPERTIES(BlastUnitTests PROPERTIES
COMPILE_PDB_NAME_CHECKED "BlastUnitTests${CMAKE_CHECKED_POSTFIX}"
COMPILE_PDB_NAME_PROFILE "BlastUnitTests${CMAKE_PROFILE_POSTFIX}"
COMPILE_PDB_NAME_RELEASE "BlastUnitTests${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
TARGET_COMPILE_OPTIONS(BlastUnitTests
@@ -157,10 +169,10 @@ TARGET_LINK_LIBRARIES(BlastUnitTests
PRIVATE NvBlastExtShaders NvBlastExtPhysX NvBlastTk NvBlastExtSerialization NvBlastExtAssetUtils ${GOOGLETEST_LIBRARIES}
PRIVATE ${BLASTUNITTESTS_PLATFORM_LINKED_LIBS}
- PUBLIC $<$<CONFIG:debug>:${PXFOUNDATION_LIB_DEBUG}> $<$<CONFIG:debug>:${PXTASK_LIB_DEBUG}>
- PUBLIC $<$<CONFIG:checked>:${PXFOUNDATION_LIB_CHECKED}> $<$<CONFIG:checked>:${PXTASK_LIB_CHECKED}>
- PUBLIC $<$<CONFIG:profile>:${PXFOUNDATION_LIB_PROFILE}> $<$<CONFIG:profile>:${PXTASK_LIB_PROFILE}>
- PUBLIC $<$<CONFIG:release>:${PXFOUNDATION_LIB}> $<$<CONFIG:release>:${PXTASK_LIB}>
+ PUBLIC $<$<CONFIG:debug>:${PHYSXFOUNDATION_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSXTASK_STATIC_LIB_DEBUG}>
+ PUBLIC $<$<CONFIG:checked>:${PHYSXFOUNDATION_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSXTASK_STATIC_LIB_CHECKED}>
+ PUBLIC $<$<CONFIG:profile>:${PHYSXFOUNDATION_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSXTASK_STATIC_LIB_PROFILE}>
+ PUBLIC $<$<CONFIG:release>:${PHYSXFOUNDATION_LIB}> $<$<CONFIG:release>:${PHYSXTASK_STATIC_LIB}>
)
diff --git a/test/compiler/cmake/linux/CMakeLists.txt b/test/compiler/cmake/linux/CMakeLists.txt
index 63dae8d..9a11185 100755
--- a/test/compiler/cmake/linux/CMakeLists.txt
+++ b/test/compiler/cmake/linux/CMakeLists.txt
@@ -1,6 +1,6 @@
#Platform specific compile flags and project includes
-SET(CMAKE_CXX_FLAGS "-Wextra -fdiagnostics-show-option -fno-rtti -fno-exceptions -m64 -msse2 -mfpmath=sse -fpic -ffast-math -fno-exceptions -fno-rtti -Wno-invalid-offsetof -Wno-unknown-pragmas -Wno-multichar -Wno-sign-compare -std=c++0x")
+SET(CMAKE_CXX_FLAGS "-Wextra -fdiagnostics-show-option -fno-rtti -fno-exceptions -m64 -msse2 -mfpmath=sse -fpic -ffast-math -fno-exceptions -fno-rtti -Wno-invalid-offsetof -Wno-unknown-pragmas -Wno-multichar -Wno-uninitialized -Wno-sign-compare -std=c++14")
if (CMAKE_COMPILER_IS_GNUCXX)
#Starting with 6.0 -fPIE is the default and our gtest build can't link with this
@@ -24,6 +24,12 @@ SET(BLASTTESTS_SLN_RELEASE_COMPILE_DEFS NDEBUG;)
SET(CMAKE_EXECUTABLE_SUFFIX ".elf")
+SET(LIBPATH_SUFFIX "x64")
+
+SET(CMAKE_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_PROFILE_POSTFIX "${CMAKE_PROFILE_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_CHECKED_POSTFIX "${CMAKE_CHECKED_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}_${LIBPATH_SUFFIX}")
# Include all of the projects
INCLUDE(${PROJECT_CMAKE_FILES_DIR}/BlastUnitTests.cmake)
diff --git a/test/compiler/cmake/windows/BlastPerfTests-AT.cmake b/test/compiler/cmake/windows/BlastPerfTests-AT.cmake
index b49ed0d..05f0163 100755
--- a/test/compiler/cmake/windows/BlastPerfTests-AT.cmake
+++ b/test/compiler/cmake/windows/BlastPerfTests-AT.cmake
@@ -1,7 +1,2 @@
# Copy the dlls from the deps
-ADD_CUSTOM_COMMAND(TARGET BlastPerfTests POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${PXSHAREDSDK_DLLS}
- ${BL_EXE_OUTPUT_DIR}
-)
diff --git a/test/compiler/cmake/windows/BlastUnitTests-AT.cmake b/test/compiler/cmake/windows/BlastUnitTests-AT.cmake
index b2e89a9..4f2e8b4 100755
--- a/test/compiler/cmake/windows/BlastUnitTests-AT.cmake
+++ b/test/compiler/cmake/windows/BlastUnitTests-AT.cmake
@@ -2,7 +2,6 @@
ADD_CUSTOM_COMMAND(TARGET BlastUnitTests POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${PXSHAREDSDK_DLLS}
${PHYSXSDK_DLLS}
${NVTOOLSEXT_DLL}
$<TARGET_FILE_DIR:BlastUnitTests>
diff --git a/test/src/TkBaseTest.h b/test/src/TkBaseTest.h
index 5e14558..c97a401 100755
--- a/test/src/TkBaseTest.h
+++ b/test/src/TkBaseTest.h
@@ -46,7 +46,6 @@
#include "PxCpuDispatcher.h"
#include "PxTask.h"
#include "PxFoundation.h"
-#include "PxFoundationVersion.h"
#include <thread>
#include <algorithm>
@@ -54,6 +53,7 @@
#include <mutex>
#include <condition_variable>
#include <atomic>
+#include <PxPhysicsVersion.h>
#define USE_PHYSX_DISPATCHER 0
@@ -216,7 +216,7 @@ public:
virtual void SetUp() override
{
- m_foundation = PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
+ m_foundation = PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
NvBlastProfilerSetCallback(&m_profiler);
NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::LOW);
@@ -230,7 +230,7 @@ public:
m_cpuDispatcher = new TestCpuDispatcher(4);
#endif
- m_taskman = PxTaskManager::createTaskManager(NvBlastGetPxErrorCallback(), m_cpuDispatcher, nullptr);
+ m_taskman = PxTaskManager::createTaskManager(NvBlastGetPxErrorCallback(), m_cpuDispatcher);
m_groupTM = ExtGroupTaskManager::create(*m_taskman);
}
diff --git a/test/src/unit/APITests.cpp b/test/src/unit/APITests.cpp
index 44f79be..ee00bb2 100755
--- a/test/src/unit/APITests.cpp
+++ b/test/src/unit/APITests.cpp
@@ -1609,26 +1609,10 @@ TEST_F(APITest,CExportsNoNameMangling)
//
#if NV_WIN32
-#if NV_DEBUG
- const char* dllName = "NvBlastDebug_x86.dll";
-#elif NV_CHECKED
- const char* dllName = "NvBlastChecked_x86.dll";
-#elif NV_PROFILE
- const char* dllName = "NvBlastProfile_x86.dll";
-#else
const char* dllName = "NvBlast_x86.dll";
-#endif
#elif NV_WIN64
-#if NV_DEBUG
- const char* dllName = "NvBlastDebug_x64.dll";
-#elif NV_CHECKED
- const char* dllName = "NvBlastChecked_x64.dll";
-#elif NV_PROFILE
- const char* dllName = "NvBlastProfile_x64.dll";
-#else
const char* dllName = "NvBlast_x64.dll";
#endif
-#endif
HMODULE dllHandle = LoadLibrary(TEXT(dllName));
DWORD error = GetLastError();
diff --git a/test/src/unit/TkTests.cpp b/test/src/unit/TkTests.cpp
index 5d6d757..5c00ca6 100755
--- a/test/src/unit/TkTests.cpp
+++ b/test/src/unit/TkTests.cpp
@@ -31,6 +31,7 @@
#include <map>
#include <random>
#include <algorithm>
+#include <functional>
#include "PsMemoryBuffer.h"
diff --git a/tools/AuthoringTool/src/AuthoringTool.cpp b/tools/AuthoringTool/src/AuthoringTool.cpp
index 76574f3..4a94ae3 100755
--- a/tools/AuthoringTool/src/AuthoringTool.cpp
+++ b/tools/AuthoringTool/src/AuthoringTool.cpp
@@ -241,7 +241,7 @@ unsigned char *LoadBitmapFile(const char *filename, BITMAPINFOHEADER *bitmapInfo
bool initPhysX()
{
- gFoundation = PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
+ gFoundation = PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
if (!gFoundation)
{
std::cerr << "Can't init PhysX foundation" << std::endl;
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 6bb6507..0f39b12 100755
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -59,9 +59,9 @@ ENDIF()
IF (APPEND_CONFIG_NAME)
MESSAGE("Appending config to output names")
- SET(CMAKE_DEBUG_POSTFIX "DEBUG")
- SET(CMAKE_PROFILE_POSTFIX "PROFILE")
- SET(CMAKE_CHECKED_POSTFIX "CHECKED")
+ SET(CMAKE_DEBUG_POSTFIX "")
+ SET(CMAKE_PROFILE_POSTFIX "")
+ SET(CMAKE_CHECKED_POSTFIX "")
SET(CMAKE_RELEASE_POSTFIX "")
ENDIF()
diff --git a/tools/LegacyConverter/src/Main.cpp b/tools/LegacyConverter/src/Main.cpp
index cc66b42..d0dde48 100755
--- a/tools/LegacyConverter/src/Main.cpp
+++ b/tools/LegacyConverter/src/Main.cpp
@@ -47,7 +47,6 @@
#include "NvBlastExtSerializationInternal.h"
#include "NvBlastPxCallbacks.h"
#include "PxFoundation.h"
-#include "PxFoundationVersion.h"
#include "PxPhysicsVersion.h"
@@ -108,7 +107,7 @@ static int init_framework()
NvBlastExtTkSerializerLoadSet(*sFwk, *sSer);
}
- sFnd = PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
+ sFnd = PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback());
if (sFnd != nullptr)
{
PxTolerancesScale tol;
diff --git a/tools/compiler/cmake/ApexImporter.cmake b/tools/compiler/cmake/ApexImporter.cmake
index 7ab0907..93cddb6 100755
--- a/tools/compiler/cmake/ApexImporter.cmake
+++ b/tools/compiler/cmake/ApexImporter.cmake
@@ -7,8 +7,8 @@ SET(TOOLS_COMMON_DIR ${BLAST_ROOT_DIR}/tools/common)
SET(TOOLS_COMMON_DIR ${BLAST_ROOT_DIR}/tools/common)
SET(APEX_MODULES_DIR ${BLAST_ROOT_DIR}/sdk/extensions/import/apexmodules)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
FIND_PACKAGE(tclap $ENV{PM_tclap_VERSION} REQUIRED)
FIND_PACKAGE(FBXSDK $ENV{PM_FBXSDK_VERSION} REQUIRED)
@@ -66,6 +66,18 @@ SET_TARGET_PROPERTIES(ApexImporter PROPERTIES
COMPILE_PDB_NAME_CHECKED "ApexImporter${CMAKE_CHECKED_POSTFIX}"
COMPILE_PDB_NAME_PROFILE "ApexImporter${CMAKE_PROFILE_POSTFIX}"
COMPILE_PDB_NAME_RELEASE "ApexImporter${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
@@ -76,6 +88,7 @@ TARGET_LINK_LIBRARIES(ApexImporter
ADD_CUSTOM_COMMAND(TARGET ApexImporter POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${PHYSXSDK_DLLS} ${PXSHAREDSDK_DLLS}
+ ${PHYSXSDK_DLLS}
${BL_EXE_OUTPUT_DIR}
+ $<TARGET_FILE_DIR:ApexImporter>
)
diff --git a/tools/compiler/cmake/AuthoringTool.cmake b/tools/compiler/cmake/AuthoringTool.cmake
index 3b16da0..399cf3f 100755
--- a/tools/compiler/cmake/AuthoringTool.cmake
+++ b/tools/compiler/cmake/AuthoringTool.cmake
@@ -8,8 +8,8 @@ SET(TOOLS_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
SET(EXT_AUTHORING_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/extensions/authoring/include)
SET(TK_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/toolkit/include)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysXSDK_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxSharedSDK_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK REQUIRED)
+FIND_PACKAGE(PxSharedSDK REQUIRED)
FIND_PACKAGE(tclap $ENV{PM_tclap_VERSION} REQUIRED)
FIND_PACKAGE(tinyObjLoader $ENV{PM_tinyObjLoader_VERSION} REQUIRED)
FIND_PACKAGE(FBXSDK $ENV{PM_FBXSDK_VERSION} REQUIRED)
@@ -67,6 +67,18 @@ SET_TARGET_PROPERTIES(AuthoringTool PROPERTIES
PDB_NAME_CHECKED "AuthoringTool${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "AuthoringTool${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "AuthoringTool${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
@@ -79,7 +91,8 @@ TARGET_LINK_LIBRARIES(AuthoringTool
ADD_CUSTOM_COMMAND(TARGET AuthoringTool POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${APEXSDK_DLLS} ${PHYSXSDK_DLLS} ${PXSHAREDSDK_DLLS}
+ ${APEXSDK_DLLS} ${PHYSXSDK_DLLS}
${BL_EXE_OUTPUT_DIR}
+ $<TARGET_FILE_DIR:AuthoringTool>
)
diff --git a/tools/compiler/cmake/LegacyConverter.cmake b/tools/compiler/cmake/LegacyConverter.cmake
index 7a2c959..53912c2 100755
--- a/tools/compiler/cmake/LegacyConverter.cmake
+++ b/tools/compiler/cmake/LegacyConverter.cmake
@@ -5,8 +5,8 @@
SET(LEGACYCONVERTER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/LegacyConverter/src)
FIND_PACKAGE(tclap $ENV{PM_tclap_VERSION} REQUIRED)
-FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
-FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK ${PM_physxsdk_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK ${PM_pxshared_VERSION} REQUIRED)
# Include here after the directories are defined so that the platform specific file can use the variables.
include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/LegacyConverter.cmake)
@@ -50,6 +50,18 @@ SET_TARGET_PROPERTIES(LegacyConverter PROPERTIES
PDB_NAME_CHECKED "LegacyConverter${CMAKE_CHECKED_POSTFIX}"
PDB_NAME_PROFILE "LegacyConverter${CMAKE_PROFILE_POSTFIX}"
PDB_NAME_RELEASE "LegacyConverter${CMAKE_RELEASE_POSTFIX}"
+ ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BL_LIB_OUTPUT_DIR}/debug"
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BL_DLL_OUTPUT_DIR}/debug"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BL_EXE_OUTPUT_DIR}/debug"
+ ARCHIVE_OUTPUT_DIRECTORY_CHECKED "${BL_LIB_OUTPUT_DIR}/checked"
+ LIBRARY_OUTPUT_DIRECTORY_CHECKED "${BL_DLL_OUTPUT_DIR}/checked"
+ RUNTIME_OUTPUT_DIRECTORY_CHECKED "${BL_EXE_OUTPUT_DIR}/checked"
+ ARCHIVE_OUTPUT_DIRECTORY_PROFILE "${BL_LIB_OUTPUT_DIR}/profile"
+ LIBRARY_OUTPUT_DIRECTORY_PROFILE "${BL_DLL_OUTPUT_DIR}/profile"
+ RUNTIME_OUTPUT_DIRECTORY_PROFILE "${BL_EXE_OUTPUT_DIR}/profile"
+ ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BL_LIB_OUTPUT_DIR}/release"
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BL_DLL_OUTPUT_DIR}/release"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BL_EXE_OUTPUT_DIR}/release"
)
# Do final direct sets after the target has been defined
@@ -58,6 +70,7 @@ TARGET_LINK_LIBRARIES(LegacyConverter NvBlast NvBlastTk NvBlastExtPhysX NvBlastE
ADD_CUSTOM_COMMAND(TARGET LegacyConverter POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${PHYSXSDK_DLLS} ${PXSHAREDSDK_DLLS}
+ ${PHYSXSDK_DLLS}
${BL_EXE_OUTPUT_DIR}
+ $<TARGET_FILE_DIR:LegacyConverter>
)